Marked as helpful by the asker
The per-user cap is good. Two gaps: the cap is enforced in the browser only (move it to the server route, keyed by user id), and there's no global cap. Add a monthly ceiling in the provider dashboard and a hard stop in your route when the month's counter hits it. Then the worst case is a known number.