- Add purchaseSucceeded flag to PurchaseViewModel, set on purchase success - PaywallView observes the flag and dismisses itself automatically - ProfileTab.syncSubscription() writes PurchaseService.currentPlan back to UserProfile.subscriptionRaw via SwiftData on sheet dismiss