How can I rotate around an already rotated axis?

First. Sorry if this is a duplicate, but I cannot find an answer that works for me.
I have an object (sword) that, when it is in its (0, 0, 0) rotation it sits straight up with the handle at the bottom. However I do not always want it to be in that position. it does not have a parent object.
I want to have the sword rotate 90 degrees on the x axis, causing it to look like it is laying down, but then I also want to have it “spiral” but it looks more like a Frisbee. It appears to me that its still rotating on the worlds y axis, and I want it to rotate on its new local y axis. Please help, I have been racking my brain.

Perhaps something like:

transform.Rotate(Vector3.up, rotation, Space.Self);
transform.Rotate(transform.up, rotation, Space.Self);