Feature and limit checks belong in the platform
A payment provider can tell you whether a customer has paid for a feature, and that part works well. It does not hold the number: 25 seats, 100,000 records, 10,000 runs a month. It does not know which of the customer’s environments a request belongs to, and it does not stop the request that goes over the limit. That check runs on every request, so it belongs next to the customer data and not in a billing account. Teams that find this out late end up building a second service in front of their payment provider, with a cache, a webhook listener and rules for out-of-date data to maintain.