Parts move extremely away of the intendedposition with lookAt()

When I use just the CFrame to change the position, he changes the position correctly. But, when I use the LookAt() too, he sets the position too away of the waited position.

	-- Some Instances
	local RS = game:GetService('ReplicatedStorage')
	local char = plr.Character or plr.CharacterAdded:Wait()
	local animator = char.Humanoid.Animator :: Animator
	local animation = RS.Animations.SnapNeck
	local pos = char.PrimaryPart.Position
	local Energy = char:FindFirstChild('Energy').Value
	
	-- HandSmite config
	if target.Parent:FindFirstChildOfClass('Humanoid') then
		local enemy = target.Parent :: Model
		local enemyPos = enemy.PrimaryPart.CFrame
		local calc = enemyPos * CFrame.new(0, 0, -2)
		
		char:PivotTo(calc * CFrame.lookAt(calc.Position, enemy.PrimaryPart.Position))
	end

Ok, I solve the problem. I separate the PivotTo in two parts:

HRP:PivotTo(calc)
HRP:PivotTo(CFrame.lookAt(HRP.Position, eHRP.Position))