How to rotate object whiled keeping aligned to ground normal

I am using this code to keep aligned to the ground normal.

transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);

And this code to rotate on button press.

transform.Rotate(Vector3.up, Time.deltaTime * rotationSpeed,0);

Alone they both work fine but together the object will only align to the ground normal and not rotate. How can I get the two working together?

Normally, I would go through this with you but I think this link is exactly what you want and he even has a package to download

Take care bud
Normal Walker