Rotation from AngleAxis() ToAngleAxis() flips back and forth

I could use some pointers on how Quaternion.AngleAxis() and Quaternion.ToAngleAxis() works.

What I’m trying to do is to rotate a box 90 degrees around the X-Axis each time I scroll the mouse-wheel forwards. Everything works fine until the box have made a full 360 degree rotation, that is 4 forwards on the mouse-wheel, and starts the second ‘lap’ of rotation. Suddenly the box rotates forward one step and when I scroll the mouse-wheel the next time it rotates back to 0 degrees.

Here is the code for picking the angles.

if (scroll > 0){
 rot = 0f; 
 Vector3 right = transform.right;
 float angle = 0f;
					
 transform.rotation.ToAngleAxis(out angle, out right);
 angle = angle + 90f;	
					
 startRotation = transform.rotation;
 endRotation = Quaternion.AngleAxis(angle, Vector3.right);					
}

And the code for the actual rotation

if (rot < 1f){
 rot = rot + Time.deltaTime * 4f;
 transform.rotation = Quaternion.Lerp(startRotation, endRotation, rot);
}

Any suggestions to what’s causing this are very appreciated.

Solved it.
Instead of taking the transform.rotation as start position for the rotation I did the same as with endRotation and used AngleAxis to calculate the start rotation as well.

if (scroll > 0){
 rot = 0f; 
 Vector3 right = transform.right;
 float angle = 0f;
				
 transform.rotation.ToAngleAxis(out angle, out right);
 startRotation = Quaternion.AngleAxis(angle, Vector3.right);
				
 angle = angle + 90f;
 endRotation = Quaternion.AngleAxis(angle, Vector3.right);				
}