How to simulate moving center of rotation?

Imagine the origin of a cube is at one of its vertices. If you rotate the cube, it will rotate about that one vertices like a spinning top almost. Now, suppose you want to change that center of rotation in such a way that it moves from that vertex to its diagonal. If you tried to rotate it during this process, the cube would appear to bounce or deflect from the ground.

So, is there a way to make the cube act as though its origin of rotation is moving while you rotate it?

There’s a pivot constraint that does that, it takes an object as input so you can totally animate it.