Actively change pivot point of quaternion?

I am trying to control a large object and I need it to change it’s center of rotation actively while the object is moving. Can a quaternion have a variable center point to pivot around? Or is it fixed to where the original pivot point already exists?

If i can’t update the pivot, maybe the center rotation point stays at 0,0,0 and the object moves around it in only the x axis.

I tried separating the rotation controls out of the movement script. I did this by having one GameObject that stays static and would hopefully control the rotation of everything inside it and around its center. While a child GameObject is controlled by a movement script to move it within the rotation GameObject. The problem I had here was once I gave both GameObjects a Rigidbody it wouldn’t apply the rotation to the child object. It would only use the movement script. Do I go back to first script somehow and tell the movement part of the script to only move the child object? (I don’t know how to do that)

Perhaps you could use Unity - Scripting API: Transform.RotateAround

Otherwise you could place your object as a child to an empty object, rotate the empty object, and move the child as needed. Which basically is the same thing as a moveable pivot point.