User access levels & subscriptions

Hi everybody,

I am working on a new project which would allow people to register as a
guest, with the option of also subscribing (paying) to get extra
features. I wondered if anyone had done something like this before?

I kindof understand the authentication part, but I am unsure how to
tie-in the option of subscribing and in effect 'unlocking' extra
features - for example, allowing the user to store more private
messages etc.

If you know of some tutorials or if you can offer any tips, then that
would be great.