Weird rotation behaviour

I try to rotate a wheel i X axis based on speed and Y axis based on direction.
However my code seems to work only to 90 degrees in X then stops.
Help please.

        wheelFL.transform.localRotation = Quaternion.Euler(wheelFL.transform.localEulerAngles.x, controller.turnPower*0.3f, 0);
		wheelFR.transform.localRotation = Quaternion.Euler(wheelFR.transform.localEulerAngles.x, controller.turnPower*0.3f, 0);
		   
		wheelFR.transform.Rotate(controller.moveSpeed*factor,0,0);
		wheelFL.transform.Rotate(controller.moveSpeed*factor,0,0);
		wheelBL.transform.Rotate(controller.moveSpeed*factor,0,0);
		wheelBR.transform.Rotate(controller.moveSpeed*factor,0,0);

There is a number of ways to achieve what you want. My suggestion is to make the wheel the child of some other game object. Then you only apply the velocity dependent rotation to the wheel, and the inclination rotation you apply to the parent.