Rotating around transform.right

When I rotate around Vector3.right everything works.

float angle = 0;
Quaternion rotation = Quaternion.identity;

void Update()
{
	angle += Input.GetAxis("Mouse X") * Mathf.Rad2Deg;
		
	rotation = Quaternion.AngleAxis(angle, Vector3.right);
	rotation *= Quaternion.AngleAxis(Time.time*Mathf.Rad2Deg, Vector3.up);

	transform.rotation = rotation;
}

But when I replace Vector3.right with transform.right the rotation works for a couple of sec and than starts to rotate in all directions very fast.

float angle = 0;
Quaternion rotation = Quaternion.identity;

void Update()
{
	angle += Input.GetAxis("Mouse X") * Mathf.Rad2Deg;
		
	rotation = Quaternion.AngleAxis(angle, transform.right);
	rotation *= Quaternion.AngleAxis(Time.time*Mathf.Rad2Deg, Vector3.up);

	transform.rotation = rotation;
}

Also the object should first rotate around transform.right and then around local up. But instead it rotates around global up.
Why this happens ?

Angles go from 0 to 360.

I don’t think its that since it works just fine it the first eg.

Not really sure, but in the line:
rotation = Quaternion.AngleAxis(Time.timeMathf.Rad2Deg, Vector3.up);

You are multiplying the rotation after all… so you might want to use Time.deltaTime …right?

edit: i mean Vector.right is always (1,0,0), but transform.right changes always you …changes it (every update loop)

I cant use Time.deltaTime since first rotation at line 8 uses = and not *=.

Yes transform.right changes with current rotation. But I don’t know why I cant use it, why it starts to rotate in all directions.