Rotate around axis shifting each time I rotate

I’m trying to add pyramid shapes around a base object and each time I rotate around the Z axis the model shifts slightly resulting in ever smaller pyramids.

When I do the same application with a simple shape it does the same thing, I’ve attached examples showing the issue, from the top/bottom view you can see that the central shape is shifting each time.

I might be wrong, but the third image and also the fifth one seem to indicate that either it’s not a perfect circle, or your pivot point is off-centre, or the cylinder is tilted?