Raycasting latency on client vs server?

I’m making a mechanic where players can shield a soccer ball with their body (character), to do this I’m using a raycasting system that casts with the direction being their hrp origin pointing to the ball.

NOW, I’m wondering, would it be better to do this on the server? The problem with doing it on the client is that they can APPEAR to be in front of the ball on their client, while another client sees that the person stealing is behind them (from their view, that person should NOT be able to steal the ball)

Maybe it’s an issue with my code? If so, I advise people to take a look at this:

local function isShielded(ball: BasePart): boolean
	local origin = humanoidRootPart.Position
	local direction = origin - ball.Position
	
	shieldCastParams.FilterDescendantsInstances = {character}
	local shieldCast = Workspace:Raycast(origin, direction, shieldCastParams)
	
	return shieldCast and shieldCast.Instance ~= ball and shieldCast.Instance:HasTag("Hitbox") or false
end