Keeping an object facing upward whilst connected to an animated part

Hi, I’m trying to move a part cleanly with an animation, without altering its orientation. WeldConstraints seem to do the trick for clean movement, but this causes the issue of changing the part’s orientation with the parent’s orientation; see here. I’m sure this can be rectified by animating using CFrame, but I am aware that constant CFraming isn’t a good idea either.

Thusfar, this is my set up:
EXPLORER
image

SCRIPT

local tool = script.Parent
 
local function onEquip()
	local character = tool.Parent
	local animation = Instance.new("Animation")
	animation.AnimationId = "rbxassetid://5223020277"
	local animTrack = character.Humanoid:LoadAnimation(animation)
	tool.ee.WeldConstraint.Part0 = character:FindFirstChild("Left Arm")
	tool.ee.Position = character["Left Arm"].LeftGripAttachment.WorldPosition
	animTrack:Play()
	
	animTrack:GetMarkerReachedSignal("SwitchAttachment"):Connect(function()
		print("hm")
		tool.ee.WeldConstraint.Part0 = character:FindFirstChild("Right Arm")
	end)
	
	animTrack:GetMarkerReachedSignal("Pause"):Connect(function()
		print("hi")
		animTrack:AdjustSpeed(0)
	end)
end

tool.Equipped:Connect(onEquip)

SwitchAttachment fires approximately where the left arm is fully across the Torso; pause fires at the end of the animation. How do you think I’d be able to move the part, like it is in the GIF, excepting pointing upwards at all times? Thanks in advance for any help.