Seat:Sit() does not always work

This seems to just be random, whether it works or not.

One test, it doesn’t work
ezgif.com-gif-maker - 2022-12-05T213658.061

I exit and retest, don’t change any code
ezgif.com-gif-maker - 2022-12-05T213725.847

I need consistency though and I’m not sure why it sometimes works, sometimes doesn’t

local Seat = prompt.Parent

-- Make sure player isn't in mid air
if Player.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall then
	Player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Landed)
end

Seat:Sit(Player.Character.Humanoid)
print(Seat, Seat.Occupant, Player.Character.Humanoid) --  Seat nil Humanoid when it doesn't work