I am welding a sphere to my character via script and it works but when i try to move my character, it doesn't move as it regularly should. It takes a couple seconds for it to turn around and face the direction the camera is pointing like it usually would. Why is that and how to I keep this from happening?

Here is the code:

plr = game.Players.LocalPlayer
player = plr.Character
mouse = plr:GetMouse()


mouse.KeyDown:connect(function(key)
	key = key:lower()
	if key == "b" then
	wait(.2)
	
	print('working')
	
	local x = Instance.new('Part', player)
	x.Shape = 'Ball'
	x.Size = Vector3.new(10,10,10)
	x.Material = 'Neon'
	x.BrickColor = BrickColor.new('New Yeller')
	x.Transparency = .5
	x.CanCollide = false
	
	local m = Instance.new('Weld', player)
	m.Part0 = player:WaitForChild('Torso')
	m.Part1 = x
	m.C1 = CFrame.fromEulerAnglesXYZ(0, 0, 0) *CFrame.new(0,-1.5, 0)
	
	
	
	
	
	end
end)

The sphere is surrounding the player btw.