I would (and have, in the recent past) opt for Stripe subscription billing: https://stripe.com/docs/subscriptions. Upgrading/downgrading plans for users is baked in (and you can even choose to prorate or not), plus, of course, it's an integrated service rather than something that sits atop another gateway and adds additional fees