Confused about how Graphic Raycaster works
So I have some UI objects (Cards) in a Grid Layout Group, and I wanted to set their sortingOrder, this is only achievable by adding a Canvas Group to these cards and overriding their sortOrder (changing the hiearchy is not an option for me). But adding the Canvas group causes the Cards to be undraggable, and is only remedied by adding a Graphic Raycaster as well.
What does this Graphic Raycaster do exactly? Does it constantly casts rays to all objects? Why do I need it along with the Canvas component to drag my Cards again, and why does adding the Canvas component disables card dragging? Also, now whenever I drag the card over another UI in the scene, it seems to cancel the onDrag for that card, this is only fixed by adding Canvas Groups to all UIs in my scene and setting them to uninteractable and not Blocking raycasts. Why is this so? Are all UIs by default blocking raycasts? Does adding Graphic Raycaster make my cards emit rays? Why does my onDrag get cancelled when I drag the Card over another UI that is blocking Raycast? Also, setting the sortingOrder to a different one than my other UIs makes them completely ignore the Cards altogether, I thought sortingOrder only determines order of rendering?
Sorry if I'm asking too many questions, I tried looking up docs and youtube videos but to no avail. Thank you so much if you know what's going on here.