Tween a model with position

local function tweenModel(model, CF)
	local CFrameValue = Instance.new("CFrameValue")
	CFrameValue.Value = model:GetPrimaryPartCFrame()

	CFrameValue:GetPropertyChangedSignal("Value"):Connect(function()
		model:SetPrimaryPartCFrame(CFrameValue.Value)
	end)

	local tween = TweenService:Create(CFrameValue, tweenInfo, {Value = CF})
	tween:Play()

	tween.Completed:Connect(function()
		CFrameValue:Destroy()
	end)
end


Event.OnServerEvent:Connect(function(Player,Dist)
	local DragonH = game:GetService("ReplicatedStorage").WaterDragon:Clone()
	DragonH.Parent = game.Workspace.DragonDebris
	DragonH:SetPrimaryPartCFrame(Player.Character.HumanoidRootPart.CFrame * CFrame.new(1,7,1))
	DragonH:SetPrimaryPartCFrame(CFrame.lookAt(DragonH.PrimaryPart.Position,Tool:GetAttribute("MousePos")))
	Tool.Roar:Play()
	wait(1)
	tweenModel(DragonH,CFrame.lookAt(DragonH.PrimaryPart.Position,Tool:GetAttribute("MousePos")))
	tweenModel(DragonH,Tool:GetAttribute("MousePos"))
end)

TweenService:Create property named 'Value' cannot be tweened due to type mismatch (property is a 'CoordinateFrame', but given type is 'Vector3') look this line tweenModel(DragonH,Tool:GetAttribute("MousePos"))

if im not wrong mouse pos is something like vector2 or vector3 it is not cframe

if i convert it to CFrame it doesn’t go where i clicked.