Making Moving Platform that carries players

So I’m creating a skill for my game that allows players to ride a wave of water. The issue is that I can’t seem to make it move smoothly while carrying a player.


To explain whats happening in that clip, the Red Hitbox is created on the server and moved along a bezier curve, then, on the client, I created the wave part with the beams attached to it, and a platform part is welded on top which the player can stand on. Then, using this code on the client, the wave follows the hitbox:

			local bp = Instance.new("BodyPosition")
			bp.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
			bp.Parent = Wave
			bp.P = 100000
			local bg = Instance.new("BodyGyro")
			bg.CFrame = Hitbox.CFrame * CFrame.Angles(0,math.rad(90),0) * CFrame.new(0,-9,0)
			bg.Parent = Wave
			
			
			while task.wait() do
				
				bp.Position = Hitbox.Position + Vector3.new(0,3,0)
				
			end

But obviously, as you can see in the clip, the wave lags behind heavily, and the player is prone to falling off. I can fix the lagging behind part by increasing the power of the body position, but that results in the player falling off way quicker. And you can’t see it in the clip, but the wave tends to rotate slightly, which is unintended.

If anyone has any alternatives or fixes, please let me know.