Getting AlignOrientation to behave like a normal block on collision

I have a car that uses AlignOrientation to steer. Everything works as intended, however when the car collides with a wall it does not behave like a car normally would.

Current behavior:


Desired behavior:

How would I go about fixing this?

I know this happens because my MaxTorque is set to math.huge, which is something I can not change. The only solution I could think of here is raycasting from the car to the wall it’s colliding with to get the surface normal and then setting the AlignOrientation CFrame to a new one with the normal as the RightVector, however before I try that I would like to know if anyone else has an easier solution to this or a viable alternative that behaves the same way AlignOrientation would.

And before anyone tells me that I could use Forces or AngularVelocity to steer instead, I know what I’m doing and there is a reason I’m using AlignOrientation here.