The billing page now shows when a subscription is set to end. After a
customer cancels from the Stripe portal, the plan card shows "Cancels on
<date>" instead of "Renews on", and goes back to "Renews on" if they
resume.
## Closes
-
[CW-8034](https://linear.app/chatwoot/issue/CW-8034/mark-the-subscription-as-cancelled-at-the-end-of-the-period)
## How to test
1. On a cloud account with a paid plan, cancel the subscription from the
billing portal.
2. Settings → Billing shows "Cancels on <date>", and the plan stays
active until that date.
3. Resume the subscription, or change the seat count, in the portal —
the card goes back to "Renews on".
## What changed
- `subscription_cancels_on` is read from Stripe's `cancel_at` (falling
back to the period end for older subscriptions that only set
`cancel_at_period_end`), stored on the account and exposed in the
account payload.
- Account deletion now schedules the cancellation with an explicit
`cancel_at` timestamp. `cancel_at_period_end` is deprecated and is not
used by Stripe's flexible billing mode, where it stays `false` even
while a cancellation is scheduled.