Two follow-ups from the final pre-merge review:
1. SyncUser and TrackBilling shipped \$account->plan?->slug, which is a
PlanSlug backed enum. json_encode renders it correctly on the wire,
but the queue payload carries an enum instance — anyone introspecting
the job (Bus::fake, future workers) and string-comparing the slug
would fail silently. Cast to ->slug->value at the call sites.
2. PostHogServiceTest only covered the api_key=null negative case. The
primary scenario the gate exists to defend (self-hosted with a stale
POSTHOG_API_KEY but POSTHOG_ENABLED=false) was not asserted. Added
four tests covering capture/identify/groupIdentify with enabled=false
and an api key present, plus a direct truth-table check on
isEnabled() requiring both flags.