Basic Vehicle Movement

Can someone explain where I’m going wrong in my script? (This is supposed to be like a motorized cart in a grocery store)

Script:

local Players = game:GetService("Players")
local MotorCart = script.Parent

local function Update()
	local Occupant = MotorCart.VehicleSeat.Occupant
	if Occupant then
		local Player = Players:GetPlayerFromCharacter(Occupant.Parent)
		MotorCart.VehicleSeat:SetNetworkOwner(Player)

		local moveDirection = Occupant.Parent.HumanoidRootPart.Velocity
		MotorCart.Base.Velocity = MotorCart.Config.Speed.Value * moveDirection

		local rotation = MotorCart.Base.Velocity:Cross(Vector3.new(0, 1, 0))
		rotation = rotation / rotation.Magnitude
		MotorCart.Base.CFrame = CFrame.new(MotorCart.Base.CFrame.Position, MotorCart.Base.CFrame.LookVector * rotation)
	else
		MotorCart.VehicleSeat:SetNetworkOwnershipAuto()
	end
end

MotorCart.VehicleSeat:GetPropertyChangedSignal("Occupant"):Connect(Update)

Explorer:

Issue: