Why does m train not move correctly?

I am trying to use tween service to move my train but it doesn’t move it correctly. It doesn’t get to the set destination but instead moves a little, then gets lifted into the air and flips on its side, and falls all while not moving forward at all. I tried putting the script in multiple cars but that didn’t fix the issue, is there a way to fix this?

Here is a video of what it looks like:

Script:

local TweenService = game:GetService("TweenService")

local part = script.Parent


local goal = {}
goal.Position = Vector3.new(150.293, 0.5, -224.694)

local tweenInfo = TweenInfo.new(10, Enum.EasingStyle.Linear)

local tween = TweenService:Create(part, tweenInfo, goal)

tween:Play()

first off, try anchoring that first carriage.

next, try tweening the cframe of the primary part of that first carriage rather than its position.

if theres no primary part, make one.