- Fix bulk delete and individual delete actions using before() hook with halt()
- Add daily/weekly billing cycle options to plan resource and Polar provider
- Enhance payment confirmation with dynamic polling and loading states
- Add graceful handling for deleted plans in subscription display
- Update Polar provider to support dynamic billing cycles
- Add support for subscription.uncanceled webhook event
- Fix spelling mismatch for subscription.canceled (Polar) vs subscription.cancelled (code)
- Implement proper cancel_at_period_end handling in subscription.canceled events
- Add cancelled_at field updates for subscription.updated events
- Handle Polar's spelling variants (canceled_at vs cancelled_at) consistently
- Remove non-existent pause_reason column from subscription uncanceled handler
- Enhance webhook logging with detailed field update tracking
- Add comprehensive cancellation metadata storage in provider_data
- Gracefully handle null provider_subscription_id in payment confirmation polling
All Polar webhook events now properly sync subscription state including
cancellation timing, reasons, and billing period details.
- Add PaymentSuccessController with authentication and subscription selection logic
- Create PaymentConfirmation Livewire component with polling mechanism
- Implement real-time subscription status verification via Polar provider API
- Add confetti animation for successful payment confirmation
- Design responsive payment success page with dark mode support
- Fix Polar provider field mapping (updated_at -> modified_at)
- Add comprehensive error handling and logging
- Support multiple subscription status states (verifying, activated, pending, error)
- Implement automatic polling with 30-second intervals (max 5 attempts)
- Add fallback redirects and user-friendly status messages