moving cubes on surface of sphere. question about RotateAround. I'm stumped!

I have the following line in a script on cubes that are spawned as children on the surface of a sphere.
transform.RotateAround (Vector3.zero, -Vector3.up, -5);

It works relatively well however I want the cubes to rotate around an axis parallel to their forward vector that goes through the center of the sphere they are on. I tried the following

transform.RotateAround (Vector3.zero, transform.forward, 5);

This makes the cubes rotate about an axis going through THEIR center and doesn’t move them along the sphere.
With the second approach I feel that the behavior of RotateAround is somehow changing. Regardless of where the cube is on the sphere they are only rotating about their own axes.

Am I missing something about how this works? Please let me know if I can clarify.

Seems like you should just make your cubes children of an empty gameObject and rotate the empty gameObject.

You could pull out the fancy math to do rotations around arbitrary points, but really, its the same exact math that happens when one transform is parented to another, and thats why transforms can be parented to another…

One thing I have used in the past is I create an auxTransfom object, an empty dummy GameObject that I move around and parent/unparent things to in order to rotate them around arbitrary points.