Clicking "Öde" ran create(), which expired the user's live trial BEFORE
any money moved. Anyone who then abandoned the Stripe page lost their
remaining trial days and was fully locked out (brand-access requires
active|trial) — every abandoned checkout became silent churn (3 real
victims on prod: 06-02 and 2x 06-10, incl. a 9.990 TRY yearly intent).
- create(): no longer touches the trial; only stale pending rows are
expired at checkout start
- activateSubscription(): supersedes the trial here instead, once the
payment has actually landed (single legitimate early-end point;
idempotency guard unaffected)
- getMySubscription(): status-priority pick (active > pending > trial >
cancelled > rest) so the expired remains of an abandoned checkout —
always the newest row — no longer eclipse a live trial on the
subscription page
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>