Explain how you would model a subscription billing system that handles upgrades, downgrades, and mid-cycle cancellations.