Handle weld messing / snapping with Motor6D for a second on tool

Basically, I have a tool that uses a Motor6D for animation, simple stuff. The thing is, I actually have it so the the handle is on the left hand, which has actually exposed a bit of a flaw with this.

Basically obviously due to how it works, the motor6d can’t be literally instantly overriding the handle weld, so there is a frame where it uses the regular handle weld before getting overridden by the Motor6D. In that frame, the tool looks extremely odd since its not set up to be on that hand, and it really triggers me and I wonder if there is a way to fix this.

Here is a video showing what I’m talking about:

And here is my tool’s client sided code:

local PlayerService = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local tool = script.Parent
local event = tool:WaitForChild("DrillRigEvent")
local animations = tool.Animations
local player = PlayerService.LocalPlayer
local character = player.Character
local humanoid = character:FindFirstChild("Humanoid")

local idleAnimation = humanoid.Animator:LoadAnimation(animations.DrillRigIdleAnimation)

local connection = nil

local function UserInput(input:InputObject,gameProcessedEvent:boolean)
	if gameProcessedEvent then return end
end

local function Equipped()
	connection = UserInputService.InputBegan:Connect(UserInput)
	idleAnimation:Play()
	event:FireServer("SetupMotor")
end

local function Unequipped()
	connection:Disconnect()
	idleAnimation:Stop()
end

local function Start()
	tool.Equipped:Connect(Equipped)
	tool.Unequipped:Connect(Unequipped)
end

Start()

And here is my tool’s server sided code:

local tool = script.Parent
local handle = tool.Handle
local handleGrip = handle.PrimaryMotor
local event = tool:WaitForChild("DrillRigEvent")

local function EventCalled(player:Player,eventType:string)
	local character = player.Character
	local humanoid = character:FindFirstChild("Humanoid")
	local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
	local leftArm = character:FindFirstChild("Left Arm")
	local rightArm = character:FindFirstChild("Right Arm")
	if eventType == "SetupMotor" then
		rightArm.RightGrip:Destroy()
		handleGrip.Part0 = leftArm
	end
end

event.OnServerEvent:Connect(EventCalled)

And I guess I’ll also provide the tool hierachy: