How do I animate a rotation with 3D cursor as pivot point?
The object's position is based on the rotation and location of its origin. When you change an object's rotation property, the origin's rotation is changed and the entire mesh is rotated around that point.

If the origin is somewhere in the middle of the object, and you apply rotation keyframes to it, this happens.



But since you want your bell to rotate about a point near its top, you just need to move the object's origin to the rotation point, resulting in something like this:



To move the origin, you can move your 3D cursor to the point where you want the origin, select the object, right-click, and go to Set Origin > Origin to 3D Cursor.

Alternatively, while in Object mode, you can go to the Active Tool and Workspace Settings tab and under Options > Transform > Affect only, select Origins.



This will cause any transformations you do to only affect the object's origin, allowing you to move it to the top of your bell.

Another method to change an object's pivot point in animations is to create an Empty Axis at the desired pivot point, parent the object (your bell in this case), to the empty, and animate the axis instead.