Rotating accessory on head

1)What do you want to achieve?
I want to make rotating accessory on head of players, who join server.
2) What is the issue?

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local head = character:WaitForChild("Head")
		local accessory = game.ReplicatedStorage.DiscoHead:Clone()
		accessory.Parent = character
		local weld = Instance.new("WeldConstraint")
		weld.Part0 = head
		weld.Part1 = accessory.Handle
		weld.Parent = accessory.Handle
		accessory.Handle.Position = head.Position + Vector3.new(0, 1, 0)
		accessory.Handle.CFrame = head.CFrame
		game:GetService("RunService").Heartbeat:Connect(function(deltaTime)
			accessory.Handle.AccessoryWeld.C0 = CFrame.Angles(0, math.pi/2, 0)
		end)
	end)
end)

But i cant figure out how can I achieve this. Can someone explain pls what to do?
listg
3) What solutions have you tried so far?
I try to find in Devforum but all that i find accessory.Handle.AccessoryWeld.C0 = CFrame.Angles(0, math.pi/2, 0). I dont really understand how to achieve this?

I want to make rotate like this