command: git diff --stat HEAD 31d1170e && git diff --name-status HEAD 31d1170e | head -200 && git merge-base HEAD 31d1170e && git log --oneline --ancestry-path HEAD..31d1170e | head -30

stdout:
 .agents/skills/infer-conventions/SKILL.md          | 104 ----
 .../infer-conventions/references/checklist.md      | 141 -----
 .agents/skills/laravel-best-practices/SKILL.md     |  59 --
 .../skills/developing-with-fortify/SKILL.md        |   0
 .../skills/fluxui-development/SKILL.md             |   0
 .claude/skills/laravel-best-practices/SKILL.md     | 190 +++++++
 .../rules/advanced-queries.md                      |   0
 .../laravel-best-practices/rules/architecture.md   |  10 +-
 .../laravel-best-practices/rules/blade-views.md    |   0
 .../skills/laravel-best-practices/rules/caching.md |   2 +-
 .../laravel-best-practices/rules/collections.md    |   0
 .../skills/laravel-best-practices/rules/config.md  |   0
 .../laravel-best-practices/rules/db-performance.md |   0
 .../laravel-best-practices/rules/eloquent.md       |   6 +-
 .../laravel-best-practices/rules/error-handling.md |   0
 .../rules/events-notifications.md                  |   0
 .../laravel-best-practices/rules/http-client.md    |   4 +-
 .../skills/laravel-best-practices/rules/mail.md    |   0
 .../laravel-best-practices/rules/migrations.md     |   2 +-
 .../laravel-best-practices/rules/queue-jobs.md     |   0
 .../skills/laravel-best-practices/rules/routing.md |   0
 .../laravel-best-practices/rules/scheduling.md     |   0
 .../laravel-best-practices/rules/security.md       |   4 +-
 .../skills/laravel-best-practices/rules/style.md   |   2 +-
 .../skills/laravel-best-practices/rules/testing.md |   2 +-
 .../laravel-best-practices/rules/validation.md     |   0
 .../skills/livewire-development/SKILL.md           |   2 +-
 .../reference/javascript-hooks.md                  |   0
 {.agents => .claude}/skills/pest-testing/SKILL.md  |   0
 .../skills/tailwindcss-development/SKILL.md        |   0
 .codex/config.toml                                 |   3 -
 .env.example                                       |   6 +-
 .gitignore                                         |   1 +
 .mcp.json                                          |   2 +-
 .../console-2026-05-31T12-16-42-999Z.log           |   2 +
 .../console-2026-05-31T12-16-55-086Z.log           |   1 +
 .../console-2026-05-31T12-17-03-880Z.log           |   1 +
 .../console-2026-05-31T12-20-04-730Z.log           |   1 +
 .../console-2026-05-31T12-20-12-835Z.log           |   1 +
 .../console-2026-05-31T12-20-15-706Z.log           |   1 +
 .../console-2026-05-31T12-20-24-696Z.log           |   2 +
 .playwright-mcp/page-2026-05-31T12-16-43-526Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-16-55-200Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-17-03-972Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-17-19-005Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-17-29-553Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-20-04-826Z.yml  |   3 +
 .playwright-mcp/page-2026-05-31T12-20-12-941Z.yml  |  30 ++
 .playwright-mcp/page-2026-05-31T12-20-15-802Z.yml  |   3 +
 .playwright-mcp/page-2026-05-31T12-20-24-776Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-20-38-182Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-21-00-300Z.yml  |  27 +
 AGENTS.md                                          | 205 -------
 CLAUDE.md                                          | 436 ++++-----------
 README.md                                          |   4 +-
 app/Actions/Fortify/ResetUserPassword.php          |   2 +-
 app/Actions/Orders/ConfirmBankTransferPayment.php  |  74 +++
 app/Auth/CustomerUserProvider.php                  |  44 +-
 app/Contracts/PaymentProvider.php                  |  14 +
 app/Contracts/TaxProvider.php                      |  16 +
 app/Enums/AnalyticsEventType.php                   |  34 ++
 app/Enums/AppInstallationStatus.php                |  10 +
 app/Enums/AppStatus.php                            |   9 +
 app/Enums/CheckoutStatus.php                       |   2 -
 app/Enums/CollectionType.php                       |   9 +
 app/Enums/DiscountStatus.php                       |  11 +
 app/Enums/FinancialStatus.php                      |   1 +
 app/Enums/FulfillmentShipmentStatus.php            |   3 +
 app/Enums/FulfillmentStatus.php                    |   4 +-
 app/Enums/NavigationItemType.php                   |  11 +
 app/Enums/OrderStatus.php                          |   2 -
 app/Enums/PageStatus.php                           |   1 +
 app/Enums/PaymentStatus.php                        |   1 -
 app/Enums/ShippingRateType.php                     |  11 +
 app/Enums/StoreUserRole.php                        |  40 ++
 app/Enums/TaxMode.php                              |   9 +
 app/Enums/WebhookDeliveryStatus.php                |  10 +
 app/Enums/WebhookSubscriptionStatus.php            |  10 +
 app/Events/CheckoutAddressed.php                   |  17 +
 app/Events/CheckoutCompleted.php                   |  17 +
 app/Events/CheckoutExpired.php                     |  17 +
 app/Events/CheckoutShippingSelected.php            |  17 +
 app/Events/FulfillmentCreated.php                  |  17 +
 app/Events/FulfillmentDelivered.php                |   3 +
 app/Events/FulfillmentShipped.php                  |   3 +
 app/Events/OrderCancelled.php                      |   3 +
 app/Events/OrderCreated.php                        |   3 +
 app/Events/OrderFulfilled.php                      |   3 +
 app/Events/OrderPaid.php                           |   3 +
 app/Events/OrderRefunded.php                       |   3 +
 app/Events/ProductStatusChanged.php                |  15 -
 app/Exceptions/CartVersionConflictException.php    |  13 -
 app/Exceptions/CartVersionMismatchException.php    |  24 +
 app/Exceptions/FulfillmentGuardException.php       |  10 +-
 app/Exceptions/InsufficientInventoryException.php  |   9 +-
 .../InvalidCheckoutTransitionException.php         |  15 +
 app/Exceptions/InvalidDiscountException.php        |  15 +-
 .../InvalidProductTransitionException.php          |  10 +-
 app/Exceptions/PaymentFailedException.php          |  21 +
 app/Http/Controllers/Api/Admin/OrderController.php | 211 ++++++++
 .../Controllers/Api/Admin/ProductController.php    | 220 ++++++++
 app/Http/Controllers/Api/AdminController.php       | 156 ------
 .../Api/Storefront/AnalyticsController.php         |  67 +++
 .../Controllers/Api/Storefront/CartController.php  | 175 ++++++
 .../Api/Storefront/CheckoutController.php          | 323 +++++++++++
 .../Api/Storefront/SearchController.php            | 184 +++++++
 .../Api/StorefrontAnalyticsController.php          |  25 -
 .../Controllers/Api/StorefrontCartController.php   | 108 ----
 .../Api/StorefrontCheckoutController.php           | 139 -----
 app/Http/Middleware/CheckStoreRole.php             |  60 +++
 app/Http/Middleware/CheckTokenAbility.php          |  28 +
 app/Http/Middleware/CustomerAuthenticate.php       |  28 +
 app/Http/Middleware/EnsureStoreRole.php            |  22 -
 app/Http/Middleware/ResolveStore.php               | 243 +++++++--
 app/Http/Middleware/ResolveStoreFromRoute.php      |  43 ++
 app/Http/Resources/Admin/FulfillmentResource.php   |  35 ++
 app/Http/Resources/Admin/OrderListResource.php     |  44 ++
 app/Http/Resources/Admin/OrderResource.php         |  72 +++
 app/Http/Resources/Admin/ProductListResource.php   |  62 +++
 app/Http/Resources/Admin/ProductResource.php       |  89 +++
 app/Http/Resources/Admin/RefundResource.php        |  32 ++
 app/Http/Resources/Storefront/CartLineResource.php |  63 +++
 app/Http/Resources/Storefront/CartResource.php     |  52 ++
 app/Http/Resources/Storefront/CheckoutResource.php | 103 ++++
 app/Jobs/AggregateAnalytics.php                    | 120 ++++-
 app/Jobs/CancelUnpaidBankTransferOrders.php        |  25 +-
 app/Jobs/CleanupAbandonedCarts.php                 |  20 +-
 app/Jobs/DeliverWebhook.php                        | 224 +++++++-
 app/Jobs/ExpireAbandonedCheckouts.php              |  38 +-
 app/Jobs/ProcessMediaUpload.php                    | 133 ++++-
 app/Listeners/DispatchOrderCreatedWebhook.php      |  52 ++
 app/Listeners/RecordOrderAnalytics.php             |  40 ++
 app/Livewire/Admin/Analytics/Index.php             | 102 +++-
 app/Livewire/Admin/Apps/Index.php                  |  51 +-
 app/Livewire/Admin/Apps/Show.php                   |  46 +-
 app/Livewire/Admin/Auth/ForgotPassword.php         |  25 -
 app/Livewire/Admin/Auth/Login.php                  |  82 ++-
 app/Livewire/{Actions => Admin/Auth}/Logout.php    |  11 +-
 app/Livewire/Admin/Auth/ResetPassword.php          |  46 --
 app/Livewire/Admin/Collections/Create.php          |   7 -
 app/Livewire/Admin/Collections/Edit.php            |   7 -
 app/Livewire/Admin/Collections/Form.php            | 185 +++++++
 app/Livewire/Admin/Collections/Index.php           |  63 ++-
 app/Livewire/Admin/Concerns/BindsCurrentStore.php  |  62 +++
 app/Livewire/Admin/Customers/Index.php             |  40 +-
 app/Livewire/Admin/Customers/Show.php              |  95 +++-
 app/Livewire/Admin/Dashboard.php                   | 161 +++++-
 app/Livewire/Admin/Developers/Index.php            | 152 +++++-
 app/Livewire/Admin/Discounts/Form.php              | 244 ++++++++-
 app/Livewire/Admin/Discounts/Index.php             |  48 +-
 app/Livewire/Admin/Inventory/Index.php             |  68 ++-
 app/Livewire/Admin/Layout/Sidebar.php              |  18 +
 app/Livewire/Admin/Layout/TopBar.php               |  67 +++
 app/Livewire/Admin/Navigation/Index.php            | 209 +++++++-
 app/Livewire/Admin/Orders/Index.php                |  83 ++-
 app/Livewire/Admin/Orders/Show.php                 | 262 ++++++++-
 app/Livewire/Admin/Pages/Create.php                |   7 -
 app/Livewire/Admin/Pages/Edit.php                  |   7 -
 app/Livewire/Admin/Pages/Form.php                  | 114 ++++
 app/Livewire/Admin/Pages/Index.php                 |  44 +-
 app/Livewire/Admin/Products/Form.php               | 377 ++++++++++++-
 app/Livewire/Admin/Products/Index.php              | 193 ++++++-
 app/Livewire/Admin/Products/MediaManager.php       | 143 +++++
 app/Livewire/Admin/Search/Settings.php             | 100 +++-
 app/Livewire/Admin/Section.php                     |  57 --
 app/Livewire/Admin/Settings/Checkout.php           |  64 +++
 app/Livewire/Admin/Settings/Domains.php            |  97 ++++
 app/Livewire/Admin/Settings/General.php            |  86 ++-
 app/Livewire/Admin/Settings/Notifications.php      |  68 +++
 app/Livewire/Admin/Settings/Shipping.php           | 204 ++++++-
 app/Livewire/Admin/Settings/Taxes.php              | 103 +++-
 app/Livewire/Admin/Themes/Editor.php               | 138 ++++-
 app/Livewire/Admin/Themes/Index.php                |  79 ++-
 app/Livewire/Settings/Appearance.php               |  10 -
 app/Livewire/Settings/DeleteUserForm.php           |  29 -
 app/Livewire/Settings/Password.php                 |  44 --
 app/Livewire/Settings/Profile.php                  |  79 ---
 app/Livewire/Settings/TwoFactor.php                | 182 -------
 app/Livewire/Settings/TwoFactor/RecoveryCodes.php  |  50 --
 .../Storefront/Account/Addresses/Index.php         | 136 ++++-
 .../Storefront/Account/Auth/ForgotPassword.php     |  25 -
 app/Livewire/Storefront/Account/Auth/Login.php     | 116 +++-
 app/Livewire/Storefront/Account/Auth/Logout.php    |  22 +
 app/Livewire/Storefront/Account/Auth/Register.php  |  50 +-
 .../Storefront/Account/Auth/ResetPassword.php      |  46 --
 app/Livewire/Storefront/Account/Dashboard.php      |  24 +-
 app/Livewire/Storefront/Account/Orders/Index.php   |  23 +-
 app/Livewire/Storefront/Account/Orders/Show.php    |  36 +-
 app/Livewire/Storefront/Cart/Show.php              |  83 ++-
 app/Livewire/Storefront/CartDrawer.php             | 133 +++++
 app/Livewire/Storefront/Checkout/Confirmation.php  |  38 +-
 app/Livewire/Storefront/Checkout/Show.php          | 195 +++++--
 app/Livewire/Storefront/Collections/Index.php      |  18 +-
 app/Livewire/Storefront/Collections/Show.php       | 183 ++++++-
 app/Livewire/Storefront/Home.php                   |  87 ++-
 app/Livewire/Storefront/Pages/Show.php             |  18 +-
 app/Livewire/Storefront/Products/Show.php          | 196 ++++++-
 app/Livewire/Storefront/Search/Index.php           |  62 ++-
 app/Livewire/Storefront/Search/Modal.php           |  42 +-
 app/Models/AnalyticsDaily.php                      |  69 ++-
 app/Models/AnalyticsEvent.php                      |  59 +-
 app/Models/App.php                                 |  57 +-
 app/Models/AppInstallation.php                     |  73 ++-
 app/Models/Cart.php                                |  53 +-
 app/Models/CartLine.php                            |  54 +-
 app/Models/Checkout.php                            |  69 ++-
 app/Models/Collection.php                          |  50 +-
 app/Models/Concerns/BelongsToStore.php             |  33 +-
 app/Models/Customer.php                            |  77 ++-
 app/Models/CustomerAddress.php                     |  38 +-
 app/Models/Discount.php                            |  73 ++-
 app/Models/Fulfillment.php                         |  48 +-
 app/Models/FulfillmentLine.php                     |  44 +-
 app/Models/InventoryItem.php                       |  50 +-
 app/Models/NavigationItem.php                      |  66 ++-
 app/Models/NavigationMenu.php                      |  32 +-
 app/Models/OauthClient.php                         |  62 +++
 app/Models/OauthToken.php                          |  61 +++
 app/Models/Order.php                               |  89 ++-
 app/Models/OrderLine.php                           |  87 ++-
 app/Models/Organization.php                        |  16 +-
 app/Models/Page.php                                |  61 ++-
 app/Models/Payment.php                             |  55 +-
 app/Models/Product.php                             | 142 ++++-
 app/Models/ProductMedia.php                        |  57 +-
 app/Models/ProductOption.php                       |  44 +-
 app/Models/ProductOptionValue.php                  |  51 +-
 app/Models/ProductVariant.php                      | 103 +++-
 app/Models/Refund.php                              |  46 +-
 app/Models/Scopes/StoreScope.php                   |  21 +-
 app/Models/SearchQuery.php                         |  43 +-
 app/Models/SearchSetting.php                       |  64 ++-
 app/Models/ShippingRate.php                        |  43 +-
 app/Models/ShippingZone.php                        |  49 +-
 app/Models/Store.php                               |  73 ++-
 app/Models/StoreDomain.php                         |  36 +-
 app/Models/StoreSettings.php                       |  53 +-
 app/Models/StoreUser.php                           |  49 +-
 app/Models/TaxSettings.php                         |  62 ++-
 app/Models/Theme.php                               |  61 ++-
 app/Models/ThemeFile.php                           |  41 +-
 app/Models/ThemeSetting.php                        |  21 -
 app/Models/ThemeSettings.php                       |  73 +++
 app/Models/User.php                                |  56 +-
 app/Models/WebhookDelivery.php                     |  66 ++-
 app/Models/WebhookSubscription.php                 |  69 ++-
 app/Observers/ProductObserver.php                  |  14 +-
 app/Policies/CollectionPolicy.php                  |  35 +-
 app/Policies/CustomerPolicy.php                    |  18 +-
 app/Policies/DiscountPolicy.php                    |  43 +-
 app/Policies/FulfillmentPolicy.php                 |  45 +-
 app/Policies/NavigationMenuPolicy.php              |  38 ++
 app/Policies/OrderPolicy.php                       |  50 +-
 app/Policies/PagePolicy.php                        |  35 +-
 app/Policies/ProductPolicy.php                     |  45 +-
 app/Policies/RefundPolicy.php                      |  22 +-
 app/Policies/StorePolicy.php                       |  40 +-
 app/Policies/ThemePolicy.php                       |  40 +-
 app/Providers/AppServiceProvider.php               | 131 ++++-
 app/Providers/FortifyServiceProvider.php           |  42 +-
 app/Providers/PaymentServiceProvider.php           |  22 +
 app/Providers/PlatformServiceProvider.php          |  31 ++
 app/Providers/SearchServiceProvider.php            |  22 +
 app/Services/AnalyticsService.php                  |  97 +++-
 app/Services/CartService.php                       | 318 +++++++----
 app/Services/CheckoutService.php                   | 323 ++++++++---
 app/Services/Concerns/ChecksOrderReferences.php    |  53 ++
 app/Services/CustomerService.php                   |  35 ++
 app/Services/DiscountService.php                   | 187 +++++--
 app/Services/FulfillmentService.php                | 203 +++++--
 app/Services/InventoryService.php                  |  85 ++-
 app/Services/MockPaymentProvider.php               |  39 --
 app/Services/NavigationService.php                 | 148 +++++
 app/Services/OrderService.php                      | 285 +++++++---
 app/Services/Payment/MockPaymentProvider.php       |  98 ++++
 app/Services/PaymentProvider.php                   |   5 -
 app/Services/PaymentService.php                    |  67 +--
 app/Services/PricingEngine.php                     | 190 +++++--
 app/Services/ProductService.php                    | 240 +++++++--
 app/Services/RefundService.php                     | 173 ++++--
 app/Services/SearchService.php                     | 345 ++++++++++--
 app/Services/ShippingCalculator.php                | 180 ++++++-
 app/Services/Tax/ManualTaxProvider.php             |  64 +++
 app/Services/Tax/StripeTaxProvider.php             |  25 +
 app/Services/TaxCalculator.php                     |  66 ++-
 app/Services/ThemeSettingsService.php              | 192 +++++++
 app/Services/VariantMatrixService.php              | 192 +++++--
 app/Services/WebhookService.php                    |  69 ++-
 app/Support/Database/SqliteEnumCheck.php           |  39 ++
 app/Support/HandleGenerator.php                    |  53 +-
 app/Support/HtmlSanitizer.php                      |  18 -
 app/Support/Storefront/PriceFormatter.php          |  36 ++
 app/Support/Storefront/ProductCardPresenter.php    | 113 ++++
 app/Traits/ChecksStoreRole.php                     | 104 ++--
 app/ValueObjects/DiscountResult.php                |  20 +-
 app/ValueObjects/DiscountValidationResult.php      |  31 ++
 app/ValueObjects/PaymentResult.php                 |  26 +-
 app/ValueObjects/PricingResult.php                 |  52 +-
 app/ValueObjects/RefundResult.php                  |  17 +-
 app/ValueObjects/TaxCalculationRequest.php         |  27 +
 app/ValueObjects/TaxCalculationResult.php          |  17 +
 app/ValueObjects/TaxLine.php                       |  23 +-
 app/ValueObjects/TaxResult.php                     |   9 -
 boost.json                                         |   3 +-
 bootstrap/app.php                                  |  61 ++-
 bootstrap/providers.php                            |   3 +
 composer.json                                      |   3 +-
 composer.lock                                      | 190 +++----
 config/auth.php                                    |  15 +-
 config/cache.php                                   |   2 +-
 config/database.php                                |   2 +-
 config/fortify.php                                 |   7 +-
 config/logging.php                                 |  19 +
 config/queue.php                                   |   2 +-
 config/session.php                                 |   2 +-
 config/shop.php                                    |  54 +-
 config/tenancy.php                                 |  14 -
 .../{StoreUserFactory.php => AppFactory.php}       |  13 +-
 database/factories/AppInstallationFactory.php      |  30 ++
 database/factories/CartFactory.php                 |  27 +-
 database/factories/CartLineFactory.php             |  32 ++
 database/factories/CheckoutFactory.php             |  36 ++
 database/factories/CollectionFactory.php           |  34 +-
 database/factories/CustomerAddressFactory.php      |  40 ++
 database/factories/CustomerFactory.php             |  33 +-
 database/factories/DiscountFactory.php             |  70 ++-
 database/factories/FulfillmentFactory.php          |  48 ++
 database/factories/FulfillmentLineFactory.php      |  25 +
 database/factories/InventoryItemFactory.php        |  32 +-
 database/factories/NavigationItemFactory.php       |  67 +++
 database/factories/NavigationMenuFactory.php       |  51 ++
 database/factories/OrderFactory.php                |  61 ++-
 database/factories/OrderLineFactory.php            |  36 ++
 database/factories/OrganizationFactory.php         |   2 -
 database/factories/PageFactory.php                 |  54 ++
 database/factories/PaymentFactory.php              |  40 ++
 database/factories/ProductFactory.php              |  45 +-
 database/factories/ProductMediaFactory.php         |  46 ++
 database/factories/ProductOptionFactory.php        |  26 +
 database/factories/ProductOptionValueFactory.php   |  26 +
 database/factories/ProductVariantFactory.php       |  46 +-
 database/factories/RefundFactory.php               |  30 ++
 database/factories/ShippingRateFactory.php         |  62 +++
 database/factories/ShippingZoneFactory.php         |  41 ++
 database/factories/StoreDomainFactory.php          |  27 +-
 database/factories/StoreFactory.php                |  22 +-
 database/factories/StoreSettingsFactory.php        |   4 -
 database/factories/TaxSettingsFactory.php          |  42 ++
 database/factories/ThemeFactory.php                |  40 ++
 database/factories/ThemeFileFactory.php            |  31 ++
 database/factories/ThemeSettingsFactory.php        |  38 ++
 database/factories/UserFactory.php                 |  14 +-
 database/factories/WebhookDeliveryFactory.php      |  42 ++
 database/factories/WebhookSubscriptionFactory.php  |  41 ++
 .../0001_01_01_000000_create_users_table.php       |  11 +-
 ...70933_add_two_factor_columns_to_users_table.php |   2 +-
 ...026_05_31_120001_create_organizations_table.php |  31 ++
 .../2026_05_31_120002_create_stores_table.php      |  40 ++
 ...026_05_31_120003_create_store_domains_table.php |  39 ++
 .../2026_05_31_120004_create_store_users_table.php |  40 ++
 ...6_05_31_120005_create_store_settings_table.php} |  10 +-
 .../2026_05_31_120006_create_customers_table.php   |  36 ++
 ...5_31_120007_create_customer_addresses_table.php |  33 ++
 ...create_customer_password_reset_tokens_table.php |  31 ++
 .../2026_05_31_120101_create_products_table.php    |  46 ++
 ...6_05_31_120102_create_product_options_table.php |  32 ++
 ...1_120103_create_product_option_values_table.php |  32 ++
 ..._05_31_120104_create_product_variants_table.php |  47 ++
 ...1_120105_create_variant_option_values_table.php |  30 ++
 ...6_05_31_120106_create_inventory_items_table.php |  37 ++
 .../2026_05_31_120107_create_collections_table.php |  41 ++
 ..._31_120108_create_collection_products_table.php |  32 ++
 ...026_05_31_120109_create_product_media_table.php |  45 ++
 .../2026_05_31_122440_create_themes_table.php      |  38 ++
 .../2026_05_31_122441_create_theme_files_table.php |  34 ++
 ...6_05_31_122442_create_theme_settings_table.php} |  10 +-
 .../2026_05_31_122443_create_pages_table.php       |  40 ++
 ..._05_31_122444_create_navigation_menus_table.php |  33 ++
 ..._05_31_122445_create_navigation_items_table.php |  42 ++
 .../2026_05_31_123001_create_carts_table.php       |  33 ++
 .../2026_05_31_123002_create_cart_lines_table.php  |  30 ++
 .../2026_05_31_123003_create_checkouts_table.php   |  46 ++
 ...26_05_31_123004_create_shipping_zones_table.php |  26 +
 ...26_05_31_123005_create_shipping_rates_table.php |  31 ++
 ...2026_05_31_123006_create_tax_settings_table.php |  28 +
 .../2026_05_31_123007_create_discounts_table.php   |  42 ++
 .../2026_05_31_123101_create_orders_table.php      |  57 ++
 .../2026_05_31_123102_create_order_lines_table.php |  38 ++
 .../2026_05_31_123103_create_payments_table.php    |  39 ++
 .../2026_05_31_123104_create_refunds_table.php     |  34 ++
 ...2026_05_31_123105_create_fulfillments_table.php |  35 ++
 ...05_31_123106_create_fulfillment_lines_table.php |  26 +
 ..._131921_create_personal_access_tokens_table.php |  33 ++
 ...6_05_31_140001_create_search_settings_table.php |  29 +
 ...26_05_31_140002_create_search_queries_table.php |  35 ++
 ...2026_05_31_140003_create_products_fts_table.php |  46 ++
 ..._05_31_140004_create_analytics_events_table.php |  41 ++
 ...6_05_31_140005_create_analytics_daily_table.php |  37 ++
 .../2026_05_31_140006_create_apps_table.php        |  31 ++
 ...05_31_140007_create_app_installations_table.php |  35 ++
 ...026_05_31_140008_create_oauth_clients_table.php |  33 ++
 ...2026_05_31_140009_create_oauth_tokens_table.php |  34 ++
 ...1_140010_create_webhook_subscriptions_table.php |  36 ++
 ...5_31_140011_create_webhook_deliveries_table.php |  38 ++
 .../2026_08_20_000000_create_shop_schema.php       | 596 ---------------------
 ..._210057_add_enum_defaults_to_tenancy_tables.php |  54 --
 ...26_08_20_220000_add_search_and_auth_support.php |  38 --
 ...26_08_20_220001_add_webhook_delivery_status.php |  22 -
 ...08_20_220002_add_spec_compatibility_columns.php |  75 ---
 ...026_08_20_220003_add_discount_code_to_carts.php |  22 -
 ...23045_add_remaining_schema_contract_columns.php | 121 -----
 database/seeders/CatalogSeeder.php                 | 184 +++++++
 database/seeders/CommerceSeeder.php                | 455 ++++++++++++++++
 database/seeders/DatabaseSeeder.php                |   9 +-
 database/seeders/DemoStoreSeeder.php               | 132 +++++
 database/seeders/MediaSeeder.php                   | 199 +++++++
 database/seeders/OrganizationSeeder.php            |  16 -
 database/seeders/SearchAndAppsSeeder.php           |  66 +++
 database/seeders/ShopSeeder.php                    | 120 -----
 database/seeders/StoreDomainSeeder.php             |  16 -
 database/seeders/StoreSeeder.php                   |  16 -
 database/seeders/StoreSettingsSeeder.php           |  16 -
 database/seeders/StorefrontSeeder.php              | 178 ++++++
 opencode.json                                      |  23 -
 package-lock.json                                  | 362 +++++--------
 resources/js/app.js                                | 104 ++++
 resources/views/admin/dashboard.blade.php          |  19 +
 .../views/components/admin/breadcrumbs.blade.php   |  19 +
 resources/views/components/admin/card.blade.php    |  10 +
 .../views/components/admin/settings-tabs.blade.php |  47 ++
 .../views/components/desktop-user-menu.blade.php   |  39 --
 .../views/components/placeholder-pattern.blade.php |  12 -
 .../views/components/settings/layout.blade.php     |  23 -
 .../components/storefront/product-card.blade.php   |  19 -
 resources/views/dashboard.blade.php                |  18 -
 resources/views/layouts/admin.blade.php            |   5 -
 resources/views/layouts/app.blade.php              |   5 -
 resources/views/layouts/app/header.blade.php       |  78 ---
 resources/views/layouts/app/sidebar.blade.php      |  95 ----
 resources/views/layouts/auth.blade.php             |   4 +-
 resources/views/layouts/auth/card.blade.php        |   2 +-
 resources/views/layouts/auth/simple.blade.php      |   2 +-
 resources/views/layouts/auth/split.blade.php       |   4 +-
 resources/views/layouts/empty.blade.php            |   1 -
 resources/views/layouts/storefront.blade.php       |  42 --
 .../views/livewire/admin/analytics/index.blade.php |  86 ++-
 .../views/livewire/admin/apps/index.blade.php      |  31 +-
 resources/views/livewire/admin/apps/show.blade.php |  56 +-
 .../livewire/admin/auth/forgot-password.blade.php  |   1 -
 .../views/livewire/admin/auth/login.blade.php      |  44 +-
 .../livewire/admin/auth/reset-password.blade.php   |   1 -
 .../livewire/admin/collections/create.blade.php    |   3 -
 .../livewire/admin/collections/edit.blade.php      |   3 -
 .../livewire/admin/collections/form.blade.php      |  84 +++
 .../livewire/admin/collections/index.blade.php     |  59 +-
 .../views/livewire/admin/customers/index.blade.php |  43 +-
 .../views/livewire/admin/customers/show.blade.php  | 118 +++-
 resources/views/livewire/admin/dashboard.blade.php | 128 ++++-
 .../livewire/admin/developers/index.blade.php      | 126 ++++-
 .../views/livewire/admin/discounts/form.blade.php  | 144 ++++-
 .../views/livewire/admin/discounts/index.blade.php |  80 ++-
 .../views/livewire/admin/inventory/index.blade.php |  50 +-
 .../views/livewire/admin/layout/app.blade.php      |  82 +++
 .../views/livewire/admin/layout/sidebar.blade.php  |  88 +++
 .../views/livewire/admin/layout/top-bar.blade.php  |  72 +++
 .../livewire/admin/navigation/index.blade.php      |  97 +++-
 .../views/livewire/admin/orders/index.blade.php    |  91 +++-
 .../views/livewire/admin/orders/show.blade.php     | 290 +++++++++-
 .../views/livewire/admin/pages/create.blade.php    |   3 -
 .../views/livewire/admin/pages/edit.blade.php      |   3 -
 .../views/livewire/admin/pages/form.blade.php      |  75 +++
 .../views/livewire/admin/pages/index.blade.php     |  38 +-
 .../views/livewire/admin/products/form.blade.php   | 195 ++++++-
 .../views/livewire/admin/products/index.blade.php  | 128 ++++-
 .../admin/products/media-manager.blade.php         |  47 ++
 .../views/livewire/admin/search/settings.blade.php |  45 +-
 resources/views/livewire/admin/section.blade.php   |   1 -
 .../livewire/admin/settings/checkout.blade.php     |  18 +
 .../livewire/admin/settings/domains.blade.php      |  59 ++
 .../livewire/admin/settings/general.blade.php      |  78 ++-
 .../admin/settings/notifications.blade.php         |  19 +
 .../livewire/admin/settings/shipping.blade.php     | 168 +++++-
 .../views/livewire/admin/settings/taxes.blade.php  |  63 ++-
 .../views/livewire/admin/themes/editor.blade.php   |  89 ++-
 .../views/livewire/admin/themes/index.blade.php    |  47 +-
 .../views/livewire/auth/confirm-password.blade.php |  28 -
 .../views/livewire/auth/forgot-password.blade.php  |  31 --
 resources/views/livewire/auth/login.blade.php      |  59 --
 resources/views/livewire/auth/register.blade.php   |  67 ---
 .../views/livewire/auth/reset-password.blade.php   |  52 --
 .../livewire/auth/two-factor-challenge.blade.php   |  95 ----
 .../views/livewire/auth/verify-email.blade.php     |  29 -
 .../views/livewire/settings/appearance.blade.php   |  13 -
 .../livewire/settings/delete-user-form.blade.php   |  34 --
 .../views/livewire/settings/password.blade.php     |  41 --
 .../views/livewire/settings/profile.blade.php      |  47 --
 .../views/livewire/settings/two-factor.blade.php   | 210 --------
 .../settings/two-factor/recovery-codes.blade.php   |  89 ---
 .../storefront/account/addresses/index.blade.php   |  82 ++-
 .../account/auth/forgot-password.blade.php         |   1 -
 .../storefront/account/auth/login.blade.php        |  44 +-
 .../storefront/account/auth/register.blade.php     |  60 ++-
 .../account/auth/reset-password.blade.php          |   1 -
 .../storefront/account/dashboard.blade.php         |  67 ++-
 .../storefront/account/orders/index.blade.php      |  72 ++-
 .../storefront/account/orders/show.blade.php       | 106 +++-
 .../livewire/storefront/cart-drawer.blade.php      |  90 ++++
 .../views/livewire/storefront/cart/show.blade.php  |  67 ++-
 .../storefront/checkout/confirmation.blade.php     |  89 ++-
 .../livewire/storefront/checkout/show.blade.php    | 132 ++++-
 .../storefront/collections/index.blade.php         |  28 +-
 .../livewire/storefront/collections/show.blade.php | 118 +++-
 .../livewire/storefront/home-fallback.blade.php    |   1 -
 resources/views/livewire/storefront/home.blade.php |  97 +++-
 .../views/livewire/storefront/pages/show.blade.php |  17 +-
 .../livewire/storefront/products/show.blade.php    | 130 ++++-
 .../livewire/storefront/search/index.blade.php     |  63 ++-
 .../livewire/storefront/search/modal.blade.php     |  72 ++-
 .../storefront/components/address-form.blade.php   |  46 ++
 .../views/storefront/components/badge.blade.php    |  18 +
 .../storefront/components/breadcrumbs.blade.php    |  40 ++
 .../storefront/components/order-summary.blade.php  |  79 +++
 .../storefront/components/pagination.blade.php     |  50 ++
 .../views/storefront/components/price.blade.php    |  26 +
 .../storefront/components/product-card.blade.php   |  77 +++
 .../components/quantity-selector.blade.php         |  49 ++
 resources/views/storefront/errors/404.blade.php    |  37 ++
 resources/views/storefront/errors/503.blade.php    |  22 +
 resources/views/storefront/layouts/app.blade.php   | 278 ++++++++++
 routes/admin.php                                   | 105 ++++
 routes/api.php                                     | 122 +++--
 routes/console.php                                 |  22 +-
 routes/settings.php                                |  30 --
 routes/storefront.php                              |  65 +++
 routes/web.php                                     | 144 +----
 specs/progress.md                                  | 131 ++++-
 tests/Feature/Admin/DashboardTest.php              |  60 +++
 tests/Feature/Admin/DiscountManagementTest.php     | 106 ++++
 tests/Feature/Admin/OrderManagementTest.php        | 135 +++++
 tests/Feature/Admin/ProductManagementTest.php      | 152 ++++++
 tests/Feature/Admin/SettingsTest.php               |  98 ++++
 tests/Feature/Admin/SmokeTest.php                  |  77 +++
 tests/Feature/AdminApiTest.php                     |  38 --
 tests/Feature/Analytics/AggregationTest.php        |  90 ++++
 tests/Feature/Analytics/EventIngestionTest.php     | 103 ++++
 tests/Feature/Api/AdminOrderApiTest.php            | 102 ++++
 tests/Feature/Api/AdminProductApiTest.php          | 103 ++++
 tests/Feature/Api/StorefrontCartApiTest.php        | 104 ++++
 tests/Feature/Api/StorefrontCheckoutApiTest.php    | 173 ++++++
 tests/Feature/Auth/AdminAuthTest.php               | 132 +++++
 tests/Feature/Auth/AuthenticationTest.php          |  69 ---
 tests/Feature/Auth/CustomerAuthTest.php            | 211 ++++++++
 tests/Feature/Auth/EmailVerificationTest.php       |  69 ---
 tests/Feature/Auth/PasswordConfirmationTest.php    |  13 -
 tests/Feature/Auth/PasswordResetTest.php           |  61 ---
 tests/Feature/Auth/RegistrationTest.php            |  23 -
 tests/Feature/Auth/SanctumTokenTest.php            |  68 +++
 tests/Feature/Auth/TwoFactorChallengeTest.php      |  34 --
 tests/Feature/Cart/CartApiTest.php                 | 140 +++++
 tests/Feature/Cart/CartServiceTest.php             | 160 ++++++
 tests/Feature/Checkout/CheckoutComponentTest.php   | 146 +++++
 tests/Feature/Checkout/CheckoutFlowTest.php        |  84 +++
 tests/Feature/Checkout/CheckoutStateTest.php       | 116 ++++
 tests/Feature/Checkout/DiscountTest.php            |  82 +++
 tests/Feature/Checkout/PricingIntegrationTest.php  |  92 ++++
 tests/Feature/Checkout/ShippingTest.php            |  67 +++
 tests/Feature/Checkout/TaxTest.php                 |  57 ++
 tests/Feature/CommerceFlowTest.php                 | 141 -----
 tests/Feature/Customers/AddressManagementTest.php  |  96 ++++
 tests/Feature/Customers/CustomerAccountTest.php    |  89 +++
 tests/Feature/DashboardTest.php                    |  18 -
 tests/Feature/DemoSeederTest.php                   | 130 +++++
 tests/Feature/ExampleTest.php                      |   7 -
 tests/Feature/NavigationServiceTest.php            | 102 ++++
 tests/Feature/Orders/FulfillmentTest.php           | 185 +++++++
 tests/Feature/Orders/OrderCreationTest.php         | 114 ++++
 tests/Feature/Orders/RefundTest.php                | 102 ++++
 .../Payments/BankTransferConfirmationTest.php      | 106 ++++
 tests/Feature/Payments/MockPaymentProviderTest.php |  59 ++
 tests/Feature/Payments/PaymentServiceTest.php      |  74 +++
 tests/Feature/Products/CollectionTest.php          |  96 ++++
 tests/Feature/Products/InventoryTest.php           | 103 ++++
 tests/Feature/Products/MediaUploadTest.php         | 110 ++++
 tests/Feature/Products/ProductCrudTest.php         | 135 +++++
 tests/Feature/Products/StorefrontAccessorsTest.php |  90 ++++
 tests/Feature/Products/VariantTest.php             | 148 +++++
 tests/Feature/Search/AutocompleteTest.php          |  46 ++
 tests/Feature/Search/SearchTest.php                |  93 ++++
 tests/Feature/SearchAnalyticsWebhookTest.php       |  79 ---
 tests/Feature/Settings/PasswordUpdateTest.php      |  42 --
 tests/Feature/Settings/ProfileUpdateTest.php       |  78 ---
 .../Settings/TwoFactorAuthenticationTest.php       |  72 ---
 tests/Feature/Storefront/AccessibilityTest.php     |  38 ++
 .../Storefront/CustomerAuthenticationTest.php      |  41 --
 tests/Feature/Storefront/ProductPageTest.php       |  72 +++
 tests/Feature/Storefront/SearchTest.php            |  77 +++
 tests/Feature/Storefront/StorefrontSmokeTest.php   | 186 +++++++
 .../Feature/Tenancy/LivewireUpdateTenancyTest.php  | 137 +++++
 tests/Feature/Tenancy/ResolveStoreTest.php         | 103 ----
 tests/Feature/Tenancy/StoreIsolationTest.php       |  75 +++
 tests/Feature/Tenancy/TenantResolutionTest.php     |  60 +++
 tests/Feature/ThemeSettingsServiceTest.php         |  67 +++
 tests/Feature/Webhooks/WebhookDeliveryTest.php     | 213 ++++++++
 tests/Feature/Webhooks/WebhookSignatureTest.php    |  42 ++
 tests/Pest.php                                     | 264 ++++++++-
 tests/Unit/CartVersionTest.php                     |  74 +++
 tests/Unit/DiscountCalculatorTest.php              | 154 ++++++
 tests/Unit/DomainServicesTest.php                  | 107 ----
 tests/Unit/HandleGeneratorTest.php                 |  67 +++
 tests/Unit/Policies/StorePolicyTest.php            |  50 --
 tests/Unit/PriceFormatterTest.php                  |  27 +
 tests/Unit/PricingEngineTest.php                   | 222 ++++++--
 tests/Unit/ShippingCalculatorTest.php              | 125 +++++
 tests/Unit/TaxCalculatorTest.php                   |  44 ++
 tests/Unit/Tenancy/BelongsToStoreTest.php          |  44 --
 verify-01-home.jpeg                                | Bin 0 -> 200045 bytes
 verify-admin-products.jpeg                         | Bin 0 -> 37277 bytes
 617 files changed, 31382 insertions(+), 7948 deletions(-)
D	.agents/skills/infer-conventions/SKILL.md
D	.agents/skills/infer-conventions/references/checklist.md
D	.agents/skills/laravel-best-practices/SKILL.md
R100	.agents/skills/developing-with-fortify/SKILL.md	.claude/skills/developing-with-fortify/SKILL.md
R100	.agents/skills/fluxui-development/SKILL.md	.claude/skills/fluxui-development/SKILL.md
A	.claude/skills/laravel-best-practices/SKILL.md
R100	.agents/skills/laravel-best-practices/rules/advanced-queries.md	.claude/skills/laravel-best-practices/rules/advanced-queries.md
R094	.agents/skills/laravel-best-practices/rules/architecture.md	.claude/skills/laravel-best-practices/rules/architecture.md
R100	.agents/skills/laravel-best-practices/rules/blade-views.md	.claude/skills/laravel-best-practices/rules/blade-views.md
R095	.agents/skills/laravel-best-practices/rules/caching.md	.claude/skills/laravel-best-practices/rules/caching.md
R100	.agents/skills/laravel-best-practices/rules/collections.md	.claude/skills/laravel-best-practices/rules/collections.md
R100	.agents/skills/laravel-best-practices/rules/config.md	.claude/skills/laravel-best-practices/rules/config.md
R100	.agents/skills/laravel-best-practices/rules/db-performance.md	.claude/skills/laravel-best-practices/rules/db-performance.md
R096	.agents/skills/laravel-best-practices/rules/eloquent.md	.claude/skills/laravel-best-practices/rules/eloquent.md
R100	.agents/skills/laravel-best-practices/rules/error-handling.md	.claude/skills/laravel-best-practices/rules/error-handling.md
R100	.agents/skills/laravel-best-practices/rules/events-notifications.md	.claude/skills/laravel-best-practices/rules/events-notifications.md
R096	.agents/skills/laravel-best-practices/rules/http-client.md	.claude/skills/laravel-best-practices/rules/http-client.md
R100	.agents/skills/laravel-best-practices/rules/mail.md	.claude/skills/laravel-best-practices/rules/mail.md
R098	.agents/skills/laravel-best-practices/rules/migrations.md	.claude/skills/laravel-best-practices/rules/migrations.md
R100	.agents/skills/laravel-best-practices/rules/queue-jobs.md	.claude/skills/laravel-best-practices/rules/queue-jobs.md
R100	.agents/skills/laravel-best-practices/rules/routing.md	.claude/skills/laravel-best-practices/rules/routing.md
R100	.agents/skills/laravel-best-practices/rules/scheduling.md	.claude/skills/laravel-best-practices/rules/scheduling.md
R086	.agents/skills/laravel-best-practices/rules/security.md	.claude/skills/laravel-best-practices/rules/security.md
R098	.agents/skills/laravel-best-practices/rules/style.md	.claude/skills/laravel-best-practices/rules/style.md
R087	.agents/skills/laravel-best-practices/rules/testing.md	.claude/skills/laravel-best-practices/rules/testing.md
R100	.agents/skills/laravel-best-practices/rules/validation.md	.claude/skills/laravel-best-practices/rules/validation.md
R098	.agents/skills/livewire-development/SKILL.md	.claude/skills/livewire-development/SKILL.md
R100	.agents/skills/livewire-development/reference/javascript-hooks.md	.claude/skills/livewire-development/reference/javascript-hooks.md
R100	.agents/skills/pest-testing/SKILL.md	.claude/skills/pest-testing/SKILL.md
R100	.agents/skills/tailwindcss-development/SKILL.md	.claude/skills/tailwindcss-development/SKILL.md
D	.codex/config.toml
M	.env.example
M	.gitignore
M	.mcp.json
A	.playwright-mcp/console-2026-05-31T12-16-42-999Z.log
A	.playwright-mcp/console-2026-05-31T12-16-55-086Z.log
A	.playwright-mcp/console-2026-05-31T12-17-03-880Z.log
A	.playwright-mcp/console-2026-05-31T12-20-04-730Z.log
A	.playwright-mcp/console-2026-05-31T12-20-12-835Z.log
A	.playwright-mcp/console-2026-05-31T12-20-15-706Z.log
A	.playwright-mcp/console-2026-05-31T12-20-24-696Z.log
A	.playwright-mcp/page-2026-05-31T12-16-43-526Z.yml
A	.playwright-mcp/page-2026-05-31T12-16-55-200Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-03-972Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-19-005Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-29-553Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-04-826Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-12-941Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-15-802Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-24-776Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-38-182Z.yml
A	.playwright-mcp/page-2026-05-31T12-21-00-300Z.yml
M	AGENTS.md
M	CLAUDE.md
M	README.md
M	app/Actions/Fortify/ResetUserPassword.php
A	app/Actions/Orders/ConfirmBankTransferPayment.php
M	app/Auth/CustomerUserProvider.php
M	app/Contracts/PaymentProvider.php
A	app/Contracts/TaxProvider.php
A	app/Enums/AnalyticsEventType.php
A	app/Enums/AppInstallationStatus.php
A	app/Enums/AppStatus.php
M	app/Enums/CheckoutStatus.php
A	app/Enums/CollectionType.php
A	app/Enums/DiscountStatus.php
M	app/Enums/FinancialStatus.php
M	app/Enums/FulfillmentShipmentStatus.php
M	app/Enums/FulfillmentStatus.php
A	app/Enums/NavigationItemType.php
M	app/Enums/OrderStatus.php
M	app/Enums/PageStatus.php
M	app/Enums/PaymentStatus.php
A	app/Enums/ShippingRateType.php
M	app/Enums/StoreUserRole.php
A	app/Enums/TaxMode.php
A	app/Enums/WebhookDeliveryStatus.php
A	app/Enums/WebhookSubscriptionStatus.php
A	app/Events/CheckoutAddressed.php
A	app/Events/CheckoutCompleted.php
A	app/Events/CheckoutExpired.php
A	app/Events/CheckoutShippingSelected.php
A	app/Events/FulfillmentCreated.php
M	app/Events/FulfillmentDelivered.php
M	app/Events/FulfillmentShipped.php
M	app/Events/OrderCancelled.php
M	app/Events/OrderCreated.php
M	app/Events/OrderFulfilled.php
M	app/Events/OrderPaid.php
M	app/Events/OrderRefunded.php
D	app/Events/ProductStatusChanged.php
D	app/Exceptions/CartVersionConflictException.php
A	app/Exceptions/CartVersionMismatchException.php
M	app/Exceptions/FulfillmentGuardException.php
M	app/Exceptions/InsufficientInventoryException.php
A	app/Exceptions/InvalidCheckoutTransitionException.php
M	app/Exceptions/InvalidDiscountException.php
M	app/Exceptions/InvalidProductTransitionException.php
A	app/Exceptions/PaymentFailedException.php
A	app/Http/Controllers/Api/Admin/OrderController.php
A	app/Http/Controllers/Api/Admin/ProductController.php
D	app/Http/Controllers/Api/AdminController.php
A	app/Http/Controllers/Api/Storefront/AnalyticsController.php
A	app/Http/Controllers/Api/Storefront/CartController.php
A	app/Http/Controllers/Api/Storefront/CheckoutController.php
A	app/Http/Controllers/Api/Storefront/SearchController.php
D	app/Http/Controllers/Api/StorefrontAnalyticsController.php
D	app/Http/Controllers/Api/StorefrontCartController.php
D	app/Http/Controllers/Api/StorefrontCheckoutController.php
A	app/Http/Middleware/CheckStoreRole.php
A	app/Http/Middleware/CheckTokenAbility.php
A	app/Http/Middleware/CustomerAuthenticate.php
D	app/Http/Middleware/EnsureStoreRole.php
M	app/Http/Middleware/ResolveStore.php
A	app/Http/Middleware/ResolveStoreFromRoute.php
A	app/Http/Resources/Admin/FulfillmentResource.php
A	app/Http/Resources/Admin/OrderListResource.php
A	app/Http/Resources/Admin/OrderResource.php
A	app/Http/Resources/Admin/ProductListResource.php
A	app/Http/Resources/Admin/ProductResource.php
A	app/Http/Resources/Admin/RefundResource.php
A	app/Http/Resources/Storefront/CartLineResource.php
A	app/Http/Resources/Storefront/CartResource.php
A	app/Http/Resources/Storefront/CheckoutResource.php
M	app/Jobs/AggregateAnalytics.php
M	app/Jobs/CancelUnpaidBankTransferOrders.php
M	app/Jobs/CleanupAbandonedCarts.php
M	app/Jobs/DeliverWebhook.php
M	app/Jobs/ExpireAbandonedCheckouts.php
M	app/Jobs/ProcessMediaUpload.php
A	app/Listeners/DispatchOrderCreatedWebhook.php
A	app/Listeners/RecordOrderAnalytics.php
M	app/Livewire/Admin/Analytics/Index.php
M	app/Livewire/Admin/Apps/Index.php
M	app/Livewire/Admin/Apps/Show.php
D	app/Livewire/Admin/Auth/ForgotPassword.php
M	app/Livewire/Admin/Auth/Login.php
R052	app/Livewire/Actions/Logout.php	app/Livewire/Admin/Auth/Logout.php
D	app/Livewire/Admin/Auth/ResetPassword.php
D	app/Livewire/Admin/Collections/Create.php
D	app/Livewire/Admin/Collections/Edit.php
A	app/Livewire/Admin/Collections/Form.php
M	app/Livewire/Admin/Collections/Index.php
A	app/Livewire/Admin/Concerns/BindsCurrentStore.php
M	app/Livewire/Admin/Customers/Index.php
M	app/Livewire/Admin/Customers/Show.php
M	app/Livewire/Admin/Dashboard.php
M	app/Livewire/Admin/Developers/Index.php
M	app/Livewire/Admin/Discounts/Form.php
M	app/Livewire/Admin/Discounts/Index.php
M	app/Livewire/Admin/Inventory/Index.php
A	app/Livewire/Admin/Layout/Sidebar.php
A	app/Livewire/Admin/Layout/TopBar.php
M	app/Livewire/Admin/Navigation/Index.php
M	app/Livewire/Admin/Orders/Index.php
M	app/Livewire/Admin/Orders/Show.php
D	app/Livewire/Admin/Pages/Create.php
D	app/Livewire/Admin/Pages/Edit.php
A	app/Livewire/Admin/Pages/Form.php
M	app/Livewire/Admin/Pages/Index.php
M	app/Livewire/Admin/Products/Form.php
M	app/Livewire/Admin/Products/Index.php
A	app/Livewire/Admin/Products/MediaManager.php
M	app/Livewire/Admin/Search/Settings.php
D	app/Livewire/Admin/Section.php
A	app/Livewire/Admin/Settings/Checkout.php
A	app/Livewire/Admin/Settings/Domains.php
M	app/Livewire/Admin/Settings/General.php
A	app/Livewire/Admin/Settings/Notifications.php
M	app/Livewire/Admin/Settings/Shipping.php
M	app/Livewire/Admin/Settings/Taxes.php
M	app/Livewire/Admin/Themes/Editor.php
M	app/Livewire/Admin/Themes/Index.php
D	app/Livewire/Settings/Appearance.php
D	app/Livewire/Settings/DeleteUserForm.php
D	app/Livewire/Settings/Password.php
D	app/Livewire/Settings/Profile.php
D	app/Livewire/Settings/TwoFactor.php
D	app/Livewire/Settings/TwoFactor/RecoveryCodes.php
M	app/Livewire/Storefront/Account/Addresses/Index.php
D	app/Livewire/Storefront/Account/Auth/ForgotPassword.php
M	app/Livewire/Storefront/Account/Auth/Login.php
A	app/Livewire/Storefront/Account/Auth/Logout.php
M	app/Livewire/Storefront/Account/Auth/Register.php
D	app/Livewire/Storefront/Account/Auth/ResetPassword.php
M	app/Livewire/Storefront/Account/Dashboard.php
M	app/Livewire/Storefront/Account/Orders/Index.php
M	app/Livewire/Storefront/Account/Orders/Show.php
M	app/Livewire/Storefront/Cart/Show.php
A	app/Livewire/Storefront/CartDrawer.php
M	app/Livewire/Storefront/Checkout/Confirmation.php
M	app/Livewire/Storefront/Checkout/Show.php
M	app/Livewire/Storefront/Collections/Index.php
M	app/Livewire/Storefront/Collections/Show.php
M	app/Livewire/Storefront/Home.php
M	app/Livewire/Storefront/Pages/Show.php
M	app/Livewire/Storefront/Products/Show.php
M	app/Livewire/Storefront/Search/Index.php
M	app/Livewire/Storefront/Search/Modal.php
M	app/Models/AnalyticsDaily.php
fc0e414131bb593ede7c23951a737493c34228fd

formatted_output:
Warning: truncated output (original token count: 12164)
Total output lines: 819

 .agents/skills/infer-conventions/SKILL.md          | 104 ----
 .../infer-conventions/references/checklist.md      | 141 -----
 .agents/skills/laravel-best-practices/SKILL.md     |  59 --
 .../skills/developing-with-fortify/SKILL.md        |   0
 .../skills/fluxui-development/SKILL.md             |   0
 .claude/skills/laravel-best-practices/SKILL.md     | 190 +++++++
 .../rules/advanced-queries.md                      |   0
 .../laravel-best-practices/rules/architecture.md   |  10 +-
 .../laravel-best-practices/rules/blade-views.md    |   0
 .../skills/laravel-best-practices/rules/caching.md |   2 +-
 .../laravel-best-practices/rules/collections.md    |   0
 .../skills/laravel-best-practices/rules/config.md  |   0
 .../laravel-best-practices/rules/db-performance.md |   0
 .../laravel-best-practices/rules/eloquent.md       |   6 +-
 .../laravel-best-practices/rules/error-handling.md |   0
 .../rules/events-notifications.md                  |   0
 .../laravel-best-practices/rules/http-client.md    |   4 +-
 .../skills/laravel-best-practices/rules/mail.md    |   0
 .../laravel-best-practices/rules/migrations.md     |   2 +-
 .../laravel-best-practices/rules/queue-jobs.md     |   0
 .../skills/laravel-best-practices/rules/routing.md |   0
 .../laravel-best-practices/rules/scheduling.md     |   0
 .../laravel-best-practices/rules/security.md       |   4 +-
 .../skills/laravel-best-practices/rules/style.md   |   2 +-
 .../skills/laravel-best-practices/rules/testing.md |   2 +-
 .../laravel-best-practices/rules/validation.md     |   0
 .../skills/livewire-development/SKILL.md           |   2 +-
 .../reference/javascript-hooks.md                  |   0
 {.agents => .claude}/skills/pest-testing/SKILL.md  |   0
 .../skills/tailwindcss-development/SKILL.md        |   0
 .codex/config.toml                                 |   3 -
 .env.example                                       |   6 +-
 .gitignore                                         |   1 +
 .mcp.json                                          |   2 +-
 .../console-2026-05-31T12-16-42-999Z.log           |   2 +
 .../console-2026-05-31T12-16-55-086Z.log           |   1 +
 .../console-2026-05-31T12-17-03-880Z.log           |   1 +
 .../console-2026-05-31T12-20-04-730Z.log           |   1 +
 .../console-2026-05-31T12-20-12-835Z.log           |   1 +
 .../console-2026-05-31T12-20-15-706Z.log           |   1 +
 .../console-2026-05-31T12-20-24-696Z.log           |   2 +
 .playwright-mcp/page-2026-05-31T12-16-43-526Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-16-55-200Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-17-03-972Z.yml  |  26 +
 .playwright-mcp/page-2026-05-31T12-17-19-005Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-17-29-553Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-20-04-826Z.yml  |   3 +
 .playwright-mcp/page-2026-05-31T12-20-12-941Z.yml  |  30 ++
 .playwright-mcp/page-2026-05-31T12-20-15-802Z.yml  |   3 +
 .playwright-mcp/page-2026-05-31T12-20-24-776Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-20-38-182Z.yml  |   4 +
 .playwright-mcp/page-2026-05-31T12-21-00-300Z.yml  |  27 +
 AGENTS.md                                          | 205 -------
 CLAUDE.md                                          | 436 ++++-----------
 README.md                                          |   4 +-
 app/Actions/Fortify/ResetUserPassword.php          |   2 +-
 app/Actions/Orders/ConfirmBankTransferPayment.php  |  74 +++
 app/Auth/CustomerUserProvider.php                  |  44 +-
 app/Contracts/PaymentProvider.php                  |  14 +
 app/Contracts/TaxProvider.php                      |  16 +
 app/Enums/AnalyticsEventType.php                   |  34 ++
 app/Enums/AppInstallationStatus.php                |  10 +
 app/Enums/AppStatus.php                            |   9 +
 app/Enums/CheckoutStatus.php                       |   2 -
 app/Enums/CollectionType.php                       |   9 +
 app/Enums/DiscountStatus.php                       |  11 +
 app/Enums/FinancialStatus.php                      |   1 +
 app/Enums/FulfillmentShipmentStatus.php            |   3 +
 app/Enums/FulfillmentStatus.php                    |   4 +-
 app/Enums/NavigationItemType.php                   |  11 +
 app/Enums/OrderStatus.php                          |   2 -
 app/Enums/PageStatus.php                           |   1 +
 app/Enums/PaymentStatus.php                        |   1 -
 app/Enums/ShippingRateType.php                     |  11 +
 app/Enums/StoreUserRole.php                        |  40 ++
 app/Enums/TaxMode.php                              |   9 +
 app/Enums/WebhookDeliveryStatus.php                |  10 +
 app/Enums/WebhookSubscriptionStatus.php            |  10 +
 app/Events/CheckoutAddressed.php                   |  17 +
 app/Events/CheckoutCompleted.php                   |  17 +
 app/Events/CheckoutExpired.php                     |  17 +
 app/Events/CheckoutShippingSelected.php            |  17 +
 app/Events/FulfillmentCreated.php                  |  17 +
 app/Events/FulfillmentDelivered.php                |   3 +
 app/Events/FulfillmentShipped.php                  |   3 +
 app/Events/OrderCancelled.php                      |   3 +
 app/Events/OrderCreated.php                        |   3 +
 app/Events/OrderFulfilled.php                      |   3 +
 app/Events/OrderPaid.php                           |   3 +
 app/Events/OrderRefunded.php                       |   3 +
 app/Events/ProductStatusChanged.php                |  15 -
 app/Exceptions/CartVersionConflictException.php    |  13 -
 app/Exceptions/CartVersionMismatchException.php    |  24 +
 app/Exceptions/FulfillmentGuardException.php       |  10 +-
 app/Exceptions/InsufficientInventoryException.php  |   9 +-
 .../InvalidCheckoutTransitionException.php         |  15 +
 app/Exceptions/InvalidDiscountException.php        |  15 +-
 .../InvalidProductTransitionException.php          |  10 +-
 app/Exceptions/PaymentFailedException.php          |  21 +
 app/Http/Controllers/Api/Admin/OrderController.php | 211 ++++++++
 .../Controllers/Api/Admin/ProductController.php    | 220 ++++++++
 app/Http/Controllers/Api/AdminController.php       | 156 ------
 .../Api/Storefront/AnalyticsController.php         |  67 +++
 .../Controllers/Api/Storefront/CartController.php  | 175 ++++++
 .../Api/Storefront/CheckoutController.php          | 323 +++++++++++
 .../Api/Storefront/SearchController.php            | 184 +++++++
 .../Api/StorefrontAnalyticsController.php          |  25 -
 .../Controllers/Api/StorefrontCartController.php   | 108 ----
 .../Api/StorefrontCheckoutController.php           | 139 -----
 app/Http/Middleware/CheckStoreRole.php             |  60 +++
 app/Http/Middleware/CheckTokenAbility.php          |  28 +
 app/Http/Middleware/CustomerAuthenticate.php       |  28 +
 app/Http/Middleware/EnsureStoreRole.php            |  22 -
 app/Http/Middleware/ResolveStore.php               | 243 +++++++--
 app/Http/Middleware/ResolveStoreFromRoute.php      |  43 ++
 app/Http/Resources/Admin/FulfillmentResource.php   |  35 ++
 app/Http/Resources/Admin/OrderListResource.php     |  44 ++
 app/Http/Resources/Admin/OrderResource.php         |  72 +++
 app/Http/Resources/Admin/ProductListResource.php   |  62 +++
 app/Http/Resources/Admin/ProductResource.php       |  89 +++
 app/Http/Resources/Admin/RefundResource.php        |  32 ++
 app/Http/Resources/Storefront/CartLineResource.php |  63 +++
 app/Http/Resources/Storefront/CartResource.php     |  52 ++
 app/Http/Resources/Storefront/CheckoutResource.php | 103 ++++
 app/Jobs/AggregateAnalytics.php                    | 120 ++++-
 app/Jobs/CancelUnpaidBankTransferOrders.php        |  25 +-
 app/Jobs/CleanupAbandonedCarts.php                 |  20 +-
 app/Jobs/DeliverWebhook.php                        | 224 +++++++-
 app/Jobs/ExpireAbandonedCheckouts.php              |  38 +-
 app/Jobs/ProcessMediaUpload.php                    | 133 ++++-
 app/Listeners/DispatchOrderCreatedWebhook.php      |  52 ++
 app/Listeners/RecordOrderAnalytics.php             |  40 ++
 app/Livewire/Admin/Analytics/Index.php             | 102 +++-
 app/Livewire/Admin/Apps/Index.php                  |  51 +-
 app/Livewire/Admin/Apps/Show.php                   |  46 +-
 app/Livewire/Admin/Auth/ForgotPassword.php         |  25 -
 app/Livewire/Admin/Auth/Login.php                  |  82 ++-
 app/Livewire/{Actions => Admin/Auth}/Logout.php    |  11 +-
 app/Livewire/Admin/Auth/ResetPassword.php          |  46 --
 app/Livewire/Admin/Collections/Create.php          |   7 -
 app/Livewire/Admin/Collections/Edit.php            |   7 -
 app/Livewire/Admin/Collections/Form.php            | 185 +++++++
 app/Livewire/Admin/Collections/Index.php           |  63 ++-
 app/Livewire/Admin/Concerns/BindsCurrentStore.php  |  62 +++
 app/Livewire/Admin/Customers/Index.php             |  40 +-
 app/Livewire/Admin/Customers/Show.php              |  95 +++-
 app/Livewire/Admin/Dashboard.php                   | 161 +++++-
 app/Livewire/Admin/Developers/Index.php            | 152 +++++-
 app/Livewire/Admin/Discounts/Form.php              | 244 ++++++++-
 app/Livewire/Admin/Discounts/Index.php             |  48 +-
 app/Livewire/Admin/Inventory/Index.php             |  68 ++-
 app/Livewire/Admin/Layout/Sidebar.php              |  18 +
 app/Livewire/Admin/Layout/TopBar.php               |  67 +++
 app/Livewire/Admin/Navigation/Index.php            | 209 +++++++-
 app/Livewire/Admin/Orders/Index.php                |  83 ++-
 app/Livewire/Admin/Orders/Show.php                 | 262 ++++++++-
 app/Livewire/Admin/Pages/Create.php                |   7 -
 app/Livewire/Admin/Pages/Edit.php                  |   7 -
 app/Livewire/Admin/Pages/Form.php                  | 114 ++++
 app/Livewire/Admin/Pages/Index.php                 |  44 +-
 app/Livewire/Admin/Products/Form.php               | 377 ++++++++++++-
 app/Livewire/Admin/Products/Index.php              | 193 ++++++-
 app/Livewire/Admin/Products/MediaManager.php       | 143 +++++
 app/Livewire/Admin/Search/Settings.php             | 100 +++-
 app/Livewire/Admin/Section.php                     |  57 --
 app/Livewire/Admin/Settings/Checkout.php           |  64 +++
 app/Livewire/Admin/Settings/Domains.php            |  97 ++++
 app/Livewire/Admin/Settings/General.php            |  86 ++-
 app/Livewire/Admin/Settings/Notifications.php      |  68 +++
 app/Livewire/Admin/Settings/Shipping.php           | 204 ++++++-
 app/Livewire/Admin/Settings/Taxes.php              | 103 +++-
 app/Livewire/Admin/Themes/Editor.php               | 138 ++++-
 app/Livewire/Admin/Themes/Index.php                |  79 ++-
 app/Livewire/Settings/Appearance.php               |  10 -
 app/Livewire/Settings/DeleteUserForm.php           |  29 -
 app/Livewire/Settings/Password.php                 |  44 --
 app/Livewire/Settings/Profile.php                  |  79 ---
 app/Livewire/Settings/TwoFactor.php                | 182 -------
 app/Livewire/Settings/TwoFactor/RecoveryCodes.php  |  50 --
 .../Storefront/Account/Addresses/Index.php         | 136 ++++-
 .../Storefront/Account/Auth/ForgotPassword.php     |  25 -
 app/Livewire/Storefront/Account/Auth/Login.php     | 116 +++-
 app/Livewire/Storefront/Account/Auth/Logout.php    |  22 +
 app/Livewire/Storefront/Account/Auth/Register.php  |  50 +-
 .../Storefront/Account/Auth/ResetPassword.php      |  46 --
 app/Livewire/Storefront/Account/Dashboard.php      |  24 +-
 app/Livewire/Storefront/Account/Orders/Index.php   |  23 +-
 app/Livewire/Storefront/Account/Orders/Show.php    |  36 +-
 app/Livewire/Storefront/Cart/Show.php              |  83 ++-
 app/Livewire/Storefront/CartDrawer.php             | 133 +++++
 app/Livewire/Storefront/Checkout/Confirmation.php  |  38 +-
 app/Livewire/Storefront/Checkout/Show.php          | 195 +++++--
 app/Livewire/Storefront/Collections/Index.php      |  18 +-
 app/Livewire/Storefront/Collections/Show.php       | 183 ++++++-
 app/Livewire/Storefront/Home.php                   |  87 ++-
 app/Livewire/Storefront/Pages/Show.php             |  18 +-
 app/Livewire/Storefront/Products/Show.php          | 196 ++++++-
 app/Livewire/Storefront/Search/Index.php           |  62 ++-
 app/Livewire/Storefront/Search/Modal.php           |  42 +-
 app/Models/AnalyticsDaily.php                      |  69 ++-
 app/Models/AnalyticsEvent.php                      |  59 +-
 app/Models/App.php                                 |  57 +-
 app/Models/AppInstallation.php                     |  73 ++-
 app/Models/Cart.php                                |  53 +-
 app/Models/CartLine.php                            |  54 +-
 app/Models/Checkout.php                            |  69 ++-
 app/Models/Collection.php                          |  50 +-
 app/Models/Concerns/BelongsToStore.php             |  33 +-
 app/Models/Customer.php                            |  77 ++-
 app/Models/CustomerAddress.php                     |  38 +-
 app/Models/Discount.php                            |  73 ++-
 app/Models/Fulfillment.php                         |  48 +-
 app/Models/FulfillmentLine.php                     |  44 +-
 app/Models/InventoryItem.php                       |  50 +-
 app/Models/NavigationItem.php                      |  66 ++-
 app/Models/NavigationMenu.php                      |  32 +-
 app/Models/OauthClient.php                         |  62 +++
 app/Models/OauthToken.php                          |  61 +++
 app/Models/Order.php                               |  89 ++-
 app/Models/OrderLine.php                           |  87 ++-
 app/Models/Organization.php                        |  16 +-
 app/Models/Page.php                                |  61 ++-
 app/Models/Payment.php                             |  55 +-
 app/Models/Product.php                             | 142 ++++-
 app/Models/ProductMedia.php                        |  57 +-
 app/Models/ProductOption.php                       |  44 +-
 app/Models/ProductOptionValue.php                  |  51 +-
 app/Models/ProductVariant.php                      | 103 +++-
 app/Models/Refund.php                              |  46 +-
 app/Models/Scopes/StoreScope.php                   |  21 +-
 app/Models/SearchQuery.php                         |  43 +-
 app/Models/SearchSetting.php                       |  64 ++-
 app/Models/ShippingRate.php                        |  43 +-
 app/Models/ShippingZone.php                        |  49 +-
 app/Models/Store.php                               |  73 ++-
 app/Models/StoreDomain.php                         |  36 +-
 app/Models/StoreSettings.php                       |  53 +-
 app/Models/StoreUser.php                           |  49 +-
 app/Models/TaxSettings.php                         |  62 ++-
 app/Models/Theme.php                               |  61 ++-
 app/Models/ThemeFile.php                           |  41 +-
 app/Models/ThemeSetting.php                        |  21 -
 app/Models/ThemeSettings.php                       |  73 +++
 app/Models/User.php                                |  56 +-
 app/Models/WebhookDelivery.php                     |  66 ++-
 app/Models/WebhookSubscription.php                 |  69 ++-
 app/Observers/ProductObserver.php                  |  14 +-
 app/Policies/CollectionPolicy.php                  |  35 +-
 app/Policies/CustomerPolicy.php                    |  18 +-
 app/Policies/DiscountPolicy.php                    |  43 +-
 app/Policies/FulfillmentPolicy.php                 |  45 +-
 app/Policies/NavigationMenuPolicy.php              |  38 ++
 app/Policies/OrderPolicy.php                       |  50 +-
 app/Policies/PagePolicy.php                        |  35 +-
 app/Policies/ProductPolicy.php                     |  45 +-
 app/Policies/RefundPolicy.php                      |  22 +-
 app/Policies/StorePolicy.php                       |  40 +-
 app/Policies/ThemePolicy.php                       |  40 +-
 app/Providers/AppServiceProvider.php               | 131 ++++-
 app/Providers/FortifyServiceProvider.php           |  42 +-
 app/Providers/PaymentServiceProvider.php           |  22 +
 app/Providers/PlatformServiceProvider.php          |  31 ++
 app/Providers/SearchServiceProvider.php            |  22 +
 app/Services/AnalyticsService.php                  |  97 +++-
 app/Services/CartService.php                       | 318 +++++++----
 app/Services/CheckoutService.php                   | 323 ++++++++---
 app/Services/Concerns/ChecksOrderReferences.php    |  53 ++
 app/Services/CustomerService.php                   |  35 ++
 app/Services/DiscountService.php                   | 187 +++++--
 app/Services/FulfillmentService.php                | 203 +++++--
 app/Services/InventoryService.php                  |  85 ++-
 app/Services/MockPaymentProvider.php               |  39 --
 app/Services/NavigationService.php                 | 148 +++++
 app/Services/OrderService.php                      | 285 +++++++---
 app/Services/Payment/MockPaymentProvider.php       |  98 ++++
 app/Services/PaymentProvider.php                   |   5 -
 app/Services/PaymentService.php                    |  67 +--
 app/Services/PricingEngine.php                     | 190 +++++--
 app/Services/ProductService.php                    | 240 +++++++--
 app/Services/RefundService.php                     | 173 ++++--
 app/Services/SearchService.php                     | 345 ++++++++++--
 app/Services/ShippingCalculator.php                | 180 ++++++-
 app/Services/Tax/ManualTaxProvider.php             |  64 +++
 app/Services/Tax/StripeTaxProvider.php             |  25 +
 app/Services/TaxCalculator.php                     |  66 ++-
 app/Services/ThemeSettingsService.php              | 192 +++++++
 app/Services/VariantMatrixService.php              | 192 +++++--
 app/Services/WebhookService.php                    |  69 ++-
 app/Support/Database/SqliteEnumCheck.php           |  39 ++
 app/Support/HandleGenerator.php                    |  53 +-
 app/Support/HtmlSanitizer.php                      |  18 -
 app/Support/Storefront/PriceFormatter.php          |  36 ++
 app/Support/Storefront/ProductCardPresenter.php    | 113 ++++
 app/Traits/ChecksStoreRole.php                     | 104 ++--
 app/ValueObjects/DiscountResult.php                |  20 +-
 app/ValueObjects/DiscountValidationResult.php      |  31 ++
 app/ValueObjects/PaymentResult.php                 |  26 +-
 app/ValueObjects/PricingResult.php                 |  52 +-
 app/ValueObjects/RefundResult.php                  |  17 +-
 app/ValueObjects/TaxCalculationRequest.php         |  27 +
 app/ValueObjects/TaxCalculationResult.php          |  17 +
 app/ValueObjects/TaxLine.php                       |  23 +-
 app/ValueObjects/TaxResult.php                     |   9 -
 boost.json                                         |   3 +-
 bootstrap/app.php                                  |  61 ++-
 bootstrap/providers.php                            |   3 +
 composer.json                                      |   3 +-
 composer.lock                                      | 190 +++----
 config/auth.php                                    |  15 +-
 config/cache.php                                   |   2 +-
 config/database.php                                |   2 +-
 config/fortify.php                                 |   7 +-
 config/logging.php                                 |  19 +
 config/queue.php                                   |   2 +-
 config/session.php                                 |   2 +-
 config/shop.php                                    |  54 +-
 config/tenancy.php                                 |  14 -
 .../{StoreUserFactory.php => AppFactory.php}       |  13 +-
 database/factories/AppInstallationFactory.php      |  30 ++
 database/factories/CartFactory.php                 |  27 +-
 database/factories/CartLineFactory.php             |  32 ++
 database/factories/CheckoutFactory.php             |  36 ++
 database/factories/CollectionFactory.php           |  34 +-
 database/factories/CustomerAddressFactory.php      |  40 ++
 database/factories/CustomerFact…2164 tokens truncated…avigation/index.blade.php      |  97 +++-
 .../views/livewire/admin/orders/index.blade.php    |  91 +++-
 .../views/livewire/admin/orders/show.blade.php     | 290 +++++++++-
 .../views/livewire/admin/pages/create.blade.php    |   3 -
 .../views/livewire/admin/pages/edit.blade.php      |   3 -
 .../views/livewire/admin/pages/form.blade.php      |  75 +++
 .../views/livewire/admin/pages/index.blade.php     |  38 +-
 .../views/livewire/admin/products/form.blade.php   | 195 ++++++-
 .../views/livewire/admin/products/index.blade.php  | 128 ++++-
 .../admin/products/media-manager.blade.php         |  47 ++
 .../views/livewire/admin/search/settings.blade.php |  45 +-
 resources/views/livewire/admin/section.blade.php   |   1 -
 .../livewire/admin/settings/checkout.blade.php     |  18 +
 .../livewire/admin/settings/domains.blade.php      |  59 ++
 .../livewire/admin/settings/general.blade.php      |  78 ++-
 .../admin/settings/notifications.blade.php         |  19 +
 .../livewire/admin/settings/shipping.blade.php     | 168 +++++-
 .../views/livewire/admin/settings/taxes.blade.php  |  63 ++-
 .../views/livewire/admin/themes/editor.blade.php   |  89 ++-
 .../views/livewire/admin/themes/index.blade.php    |  47 +-
 .../views/livewire/auth/confirm-password.blade.php |  28 -
 .../views/livewire/auth/forgot-password.blade.php  |  31 --
 resources/views/livewire/auth/login.blade.php      |  59 --
 resources/views/livewire/auth/register.blade.php   |  67 ---
 .../views/livewire/auth/reset-password.blade.php   |  52 --
 .../livewire/auth/two-factor-challenge.blade.php   |  95 ----
 .../views/livewire/auth/verify-email.blade.php     |  29 -
 .../views/livewire/settings/appearance.blade.php   |  13 -
 .../livewire/settings/delete-user-form.blade.php   |  34 --
 .../views/livewire/settings/password.blade.php     |  41 --
 .../views/livewire/settings/profile.blade.php      |  47 --
 .../views/livewire/settings/two-factor.blade.php   | 210 --------
 .../settings/two-factor/recovery-codes.blade.php   |  89 ---
 .../storefront/account/addresses/index.blade.php   |  82 ++-
 .../account/auth/forgot-password.blade.php         |   1 -
 .../storefront/account/auth/login.blade.php        |  44 +-
 .../storefront/account/auth/register.blade.php     |  60 ++-
 .../account/auth/reset-password.blade.php          |   1 -
 .../storefront/account/dashboard.blade.php         |  67 ++-
 .../storefront/account/orders/index.blade.php      |  72 ++-
 .../storefront/account/orders/show.blade.php       | 106 +++-
 .../livewire/storefront/cart-drawer.blade.php      |  90 ++++
 .../views/livewire/storefront/cart/show.blade.php  |  67 ++-
 .../storefront/checkout/confirmation.blade.php     |  89 ++-
 .../livewire/storefront/checkout/show.blade.php    | 132 ++++-
 .../storefront/collections/index.blade.php         |  28 +-
 .../livewire/storefront/collections/show.blade.php | 118 +++-
 .../livewire/storefront/home-fallback.blade.php    |   1 -
 resources/views/livewire/storefront/home.blade.php |  97 +++-
 .../views/livewire/storefront/pages/show.blade.php |  17 +-
 .../livewire/storefront/products/show.blade.php    | 130 ++++-
 .../livewire/storefront/search/index.blade.php     |  63 ++-
 .../livewire/storefront/search/modal.blade.php     |  72 ++-
 .../storefront/components/address-form.blade.php   |  46 ++
 .../views/storefront/components/badge.blade.php    |  18 +
 .../storefront/components/breadcrumbs.blade.php    |  40 ++
 .../storefront/components/order-summary.blade.php  |  79 +++
 .../storefront/components/pagination.blade.php     |  50 ++
 .../views/storefront/components/price.blade.php    |  26 +
 .../storefront/components/product-card.blade.php   |  77 +++
 .../components/quantity-selector.blade.php         |  49 ++
 resources/views/storefront/errors/404.blade.php    |  37 ++
 resources/views/storefront/errors/503.blade.php    |  22 +
 resources/views/storefront/layouts/app.blade.php   | 278 ++++++++++
 routes/admin.php                                   | 105 ++++
 routes/api.php                                     | 122 +++--
 routes/console.php                                 |  22 +-
 routes/settings.php                                |  30 --
 routes/storefront.php                              |  65 +++
 routes/web.php                                     | 144 +----
 specs/progress.md                                  | 131 ++++-
 tests/Feature/Admin/DashboardTest.php              |  60 +++
 tests/Feature/Admin/DiscountManagementTest.php     | 106 ++++
 tests/Feature/Admin/OrderManagementTest.php        | 135 +++++
 tests/Feature/Admin/ProductManagementTest.php      | 152 ++++++
 tests/Feature/Admin/SettingsTest.php               |  98 ++++
 tests/Feature/Admin/SmokeTest.php                  |  77 +++
 tests/Feature/AdminApiTest.php                     |  38 --
 tests/Feature/Analytics/AggregationTest.php        |  90 ++++
 tests/Feature/Analytics/EventIngestionTest.php     | 103 ++++
 tests/Feature/Api/AdminOrderApiTest.php            | 102 ++++
 tests/Feature/Api/AdminProductApiTest.php          | 103 ++++
 tests/Feature/Api/StorefrontCartApiTest.php        | 104 ++++
 tests/Feature/Api/StorefrontCheckoutApiTest.php    | 173 ++++++
 tests/Feature/Auth/AdminAuthTest.php               | 132 +++++
 tests/Feature/Auth/AuthenticationTest.php          |  69 ---
 tests/Feature/Auth/CustomerAuthTest.php            | 211 ++++++++
 tests/Feature/Auth/EmailVerificationTest.php       |  69 ---
 tests/Feature/Auth/PasswordConfirmationTest.php    |  13 -
 tests/Feature/Auth/PasswordResetTest.php           |  61 ---
 tests/Feature/Auth/RegistrationTest.php            |  23 -
 tests/Feature/Auth/SanctumTokenTest.php            |  68 +++
 tests/Feature/Auth/TwoFactorChallengeTest.php      |  34 --
 tests/Feature/Cart/CartApiTest.php                 | 140 +++++
 tests/Feature/Cart/CartServiceTest.php             | 160 ++++++
 tests/Feature/Checkout/CheckoutComponentTest.php   | 146 +++++
 tests/Feature/Checkout/CheckoutFlowTest.php        |  84 +++
 tests/Feature/Checkout/CheckoutStateTest.php       | 116 ++++
 tests/Feature/Checkout/DiscountTest.php            |  82 +++
 tests/Feature/Checkout/PricingIntegrationTest.php  |  92 ++++
 tests/Feature/Checkout/ShippingTest.php            |  67 +++
 tests/Feature/Checkout/TaxTest.php                 |  57 ++
 tests/Feature/CommerceFlowTest.php                 | 141 -----
 tests/Feature/Customers/AddressManagementTest.php  |  96 ++++
 tests/Feature/Customers/CustomerAccountTest.php    |  89 +++
 tests/Feature/DashboardTest.php                    |  18 -
 tests/Feature/DemoSeederTest.php                   | 130 +++++
 tests/Feature/ExampleTest.php                      |   7 -
 tests/Feature/NavigationServiceTest.php            | 102 ++++
 tests/Feature/Orders/FulfillmentTest.php           | 185 +++++++
 tests/Feature/Orders/OrderCreationTest.php         | 114 ++++
 tests/Feature/Orders/RefundTest.php                | 102 ++++
 .../Payments/BankTransferConfirmationTest.php      | 106 ++++
 tests/Feature/Payments/MockPaymentProviderTest.php |  59 ++
 tests/Feature/Payments/PaymentServiceTest.php      |  74 +++
 tests/Feature/Products/CollectionTest.php          |  96 ++++
 tests/Feature/Products/InventoryTest.php           | 103 ++++
 tests/Feature/Products/MediaUploadTest.php         | 110 ++++
 tests/Feature/Products/ProductCrudTest.php         | 135 +++++
 tests/Feature/Products/StorefrontAccessorsTest.php |  90 ++++
 tests/Feature/Products/VariantTest.php             | 148 +++++
 tests/Feature/Search/AutocompleteTest.php          |  46 ++
 tests/Feature/Search/SearchTest.php                |  93 ++++
 tests/Feature/SearchAnalyticsWebhookTest.php       |  79 ---
 tests/Feature/Settings/PasswordUpdateTest.php      |  42 --
 tests/Feature/Settings/ProfileUpdateTest.php       |  78 ---
 .../Settings/TwoFactorAuthenticationTest.php       |  72 ---
 tests/Feature/Storefront/AccessibilityTest.php     |  38 ++
 .../Storefront/CustomerAuthenticationTest.php      |  41 --
 tests/Feature/Storefront/ProductPageTest.php       |  72 +++
 tests/Feature/Storefront/SearchTest.php            |  77 +++
 tests/Feature/Storefront/StorefrontSmokeTest.php   | 186 +++++++
 .../Feature/Tenancy/LivewireUpdateTenancyTest.php  | 137 +++++
 tests/Feature/Tenancy/ResolveStoreTest.php         | 103 ----
 tests/Feature/Tenancy/StoreIsolationTest.php       |  75 +++
 tests/Feature/Tenancy/TenantResolutionTest.php     |  60 +++
 tests/Feature/ThemeSettingsServiceTest.php         |  67 +++
 tests/Feature/Webhooks/WebhookDeliveryTest.php     | 213 ++++++++
 tests/Feature/Webhooks/WebhookSignatureTest.php    |  42 ++
 tests/Pest.php                                     | 264 ++++++++-
 tests/Unit/CartVersionTest.php                     |  74 +++
 tests/Unit/DiscountCalculatorTest.php              | 154 ++++++
 tests/Unit/DomainServicesTest.php                  | 107 ----
 tests/Unit/HandleGeneratorTest.php                 |  67 +++
 tests/Unit/Policies/StorePolicyTest.php            |  50 --
 tests/Unit/PriceFormatterTest.php                  |  27 +
 tests/Unit/PricingEngineTest.php                   | 222 ++++++--
 tests/Unit/ShippingCalculatorTest.php              | 125 +++++
 tests/Unit/TaxCalculatorTest.php                   |  44 ++
 tests/Unit/Tenancy/BelongsToStoreTest.php          |  44 --
 verify-01-home.jpeg                                | Bin 0 -> 200045 bytes
 verify-admin-products.jpeg                         | Bin 0 -> 37277 bytes
 617 files changed, 31382 insertions(+), 7948 deletions(-)
D	.agents/skills/infer-conventions/SKILL.md
D	.agents/skills/infer-conventions/references/checklist.md
D	.agents/skills/laravel-best-practices/SKILL.md
R100	.agents/skills/developing-with-fortify/SKILL.md	.claude/skills/developing-with-fortify/SKILL.md
R100	.agents/skills/fluxui-development/SKILL.md	.claude/skills/fluxui-development/SKILL.md
A	.claude/skills/laravel-best-practices/SKILL.md
R100	.agents/skills/laravel-best-practices/rules/advanced-queries.md	.claude/skills/laravel-best-practices/rules/advanced-queries.md
R094	.agents/skills/laravel-best-practices/rules/architecture.md	.claude/skills/laravel-best-practices/rules/architecture.md
R100	.agents/skills/laravel-best-practices/rules/blade-views.md	.claude/skills/laravel-best-practices/rules/blade-views.md
R095	.agents/skills/laravel-best-practices/rules/caching.md	.claude/skills/laravel-best-practices/rules/caching.md
R100	.agents/skills/laravel-best-practices/rules/collections.md	.claude/skills/laravel-best-practices/rules/collections.md
R100	.agents/skills/laravel-best-practices/rules/config.md	.claude/skills/laravel-best-practices/rules/config.md
R100	.agents/skills/laravel-best-practices/rules/db-performance.md	.claude/skills/laravel-best-practices/rules/db-performance.md
R096	.agents/skills/laravel-best-practices/rules/eloquent.md	.claude/skills/laravel-best-practices/rules/eloquent.md
R100	.agents/skills/laravel-best-practices/rules/error-handling.md	.claude/skills/laravel-best-practices/rules/error-handling.md
R100	.agents/skills/laravel-best-practices/rules/events-notifications.md	.claude/skills/laravel-best-practices/rules/events-notifications.md
R096	.agents/skills/laravel-best-practices/rules/http-client.md	.claude/skills/laravel-best-practices/rules/http-client.md
R100	.agents/skills/laravel-best-practices/rules/mail.md	.claude/skills/laravel-best-practices/rules/mail.md
R098	.agents/skills/laravel-best-practices/rules/migrations.md	.claude/skills/laravel-best-practices/rules/migrations.md
R100	.agents/skills/laravel-best-practices/rules/queue-jobs.md	.claude/skills/laravel-best-practices/rules/queue-jobs.md
R100	.agents/skills/laravel-best-practices/rules/routing.md	.claude/skills/laravel-best-practices/rules/routing.md
R100	.agents/skills/laravel-best-practices/rules/scheduling.md	.claude/skills/laravel-best-practices/rules/scheduling.md
R086	.agents/skills/laravel-best-practices/rules/security.md	.claude/skills/laravel-best-practices/rules/security.md
R098	.agents/skills/laravel-best-practices/rules/style.md	.claude/skills/laravel-best-practices/rules/style.md
R087	.agents/skills/laravel-best-practices/rules/testing.md	.claude/skills/laravel-best-practices/rules/testing.md
R100	.agents/skills/laravel-best-practices/rules/validation.md	.claude/skills/laravel-best-practices/rules/validation.md
R098	.agents/skills/livewire-development/SKILL.md	.claude/skills/livewire-development/SKILL.md
R100	.agents/skills/livewire-development/reference/javascript-hooks.md	.claude/skills/livewire-development/reference/javascript-hooks.md
R100	.agents/skills/pest-testing/SKILL.md	.claude/skills/pest-testing/SKILL.md
R100	.agents/skills/tailwindcss-development/SKILL.md	.claude/skills/tailwindcss-development/SKILL.md
D	.codex/config.toml
M	.env.example
M	.gitignore
M	.mcp.json
A	.playwright-mcp/console-2026-05-31T12-16-42-999Z.log
A	.playwright-mcp/console-2026-05-31T12-16-55-086Z.log
A	.playwright-mcp/console-2026-05-31T12-17-03-880Z.log
A	.playwright-mcp/console-2026-05-31T12-20-04-730Z.log
A	.playwright-mcp/console-2026-05-31T12-20-12-835Z.log
A	.playwright-mcp/console-2026-05-31T12-20-15-706Z.log
A	.playwright-mcp/console-2026-05-31T12-20-24-696Z.log
A	.playwright-mcp/page-2026-05-31T12-16-43-526Z.yml
A	.playwright-mcp/page-2026-05-31T12-16-55-200Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-03-972Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-19-005Z.yml
A	.playwright-mcp/page-2026-05-31T12-17-29-553Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-04-826Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-12-941Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-15-802Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-24-776Z.yml
A	.playwright-mcp/page-2026-05-31T12-20-38-182Z.yml
A	.playwright-mcp/page-2026-05-31T12-21-00-300Z.yml
M	AGENTS.md
M	CLAUDE.md
M	README.md
M	app/Actions/Fortify/ResetUserPassword.php
A	app/Actions/Orders/ConfirmBankTransferPayment.php
M	app/Auth/CustomerUserProvider.php
M	app/Contracts/PaymentProvider.php
A	app/Contracts/TaxProvider.php
A	app/Enums/AnalyticsEventType.php
A	app/Enums/AppInstallationStatus.php
A	app/Enums/AppStatus.php
M	app/Enums/CheckoutStatus.php
A	app/Enums/CollectionType.php
A	app/Enums/DiscountStatus.php
M	app/Enums/FinancialStatus.php
M	app/Enums/FulfillmentShipmentStatus.php
M	app/Enums/FulfillmentStatus.php
A	app/Enums/NavigationItemType.php
M	app/Enums/OrderStatus.php
M	app/Enums/PageStatus.php
M	app/Enums/PaymentStatus.php
A	app/Enums/ShippingRateType.php
M	app/Enums/StoreUserRole.php
A	app/Enums/TaxMode.php
A	app/Enums/WebhookDeliveryStatus.php
A	app/Enums/WebhookSubscriptionStatus.php
A	app/Events/CheckoutAddressed.php
A	app/Events/CheckoutCompleted.php
A	app/Events/CheckoutExpired.php
A	app/Events/CheckoutShippingSelected.php
A	app/Events/FulfillmentCreated.php
M	app/Events/FulfillmentDelivered.php
M	app/Events/FulfillmentShipped.php
M	app/Events/OrderCancelled.php
M	app/Events/OrderCreated.php
M	app/Events/OrderFulfilled.php
M	app/Events/OrderPaid.php
M	app/Events/OrderRefunded.php
D	app/Events/ProductStatusChanged.php
D	app/Exceptions/CartVersionConflictException.php
A	app/Exceptions/CartVersionMismatchException.php
M	app/Exceptions/FulfillmentGuardException.php
M	app/Exceptions/InsufficientInventoryException.php
A	app/Exceptions/InvalidCheckoutTransitionException.php
M	app/Exceptions/InvalidDiscountException.php
M	app/Exceptions/InvalidProductTransitionException.php
A	app/Exceptions/PaymentFailedException.php
A	app/Http/Controllers/Api/Admin/OrderController.php
A	app/Http/Controllers/Api/Admin/ProductController.php
D	app/Http/Controllers/Api/AdminController.php
A	app/Http/Controllers/Api/Storefront/AnalyticsController.php
A	app/Http/Controllers/Api/Storefront/CartController.php
A	app/Http/Controllers/Api/Storefront/CheckoutController.php
A	app/Http/Controllers/Api/Storefront/SearchController.php
D	app/Http/Controllers/Api/StorefrontAnalyticsController.php
D	app/Http/Controllers/Api/StorefrontCartController.php
D	app/Http/Controllers/Api/StorefrontCheckoutController.php
A	app/Http/Middleware/CheckStoreRole.php
A	app/Http/Middleware/CheckTokenAbility.php
A	app/Http/Middleware/CustomerAuthenticate.php
D	app/Http/Middleware/EnsureStoreRole.php
M	app/Http/Middleware/ResolveStore.php
A	app/Http/Middleware/ResolveStoreFromRoute.php
A	app/Http/Resources/Admin/FulfillmentResource.php
A	app/Http/Resources/Admin/OrderListResource.php
A	app/Http/Resources/Admin/OrderResource.php
A	app/Http/Resources/Admin/ProductListResource.php
A	app/Http/Resources/Admin/ProductResource.php
A	app/Http/Resources/Admin/RefundResource.php
A	app/Http/Resources/Storefront/CartLineResource.php
A	app/Http/Resources/Storefront/CartResource.php
A	app/Http/Resources/Storefront/CheckoutResource.php
M	app/Jobs/AggregateAnalytics.php
M	app/Jobs/CancelUnpaidBankTransferOrders.php
M	app/Jobs/CleanupAbandonedCarts.php
M	app/Jobs/DeliverWebhook.php
M	app/Jobs/ExpireAbandonedCheckouts.php
M	app/Jobs/ProcessMediaUpload.php
A	app/Listeners/DispatchOrderCreatedWebhook.php
A	app/Listeners/RecordOrderAnalytics.php
M	app/Livewire/Admin/Analytics/Index.php
M	app/Livewire/Admin/Apps/Index.php
M	app/Livewire/Admin/Apps/Show.php
D	app/Livewire/Admin/Auth/ForgotPassword.php
M	app/Livewire/Admin/Auth/Login.php
R052	app/Livewire/Actions/Logout.php	app/Livewire/Admin/Auth/Logout.php
D	app/Livewire/Admin/Auth/ResetPassword.php
D	app/Livewire/Admin/Collections/Create.php
D	app/Livewire/Admin/Collections/Edit.php
A	app/Livewire/Admin/Collections/Form.php
M	app/Livewire/Admin/Collections/Index.php
A	app/Livewire/Admin/Concerns/BindsCurrentStore.php
M	app/Livewire/Admin/Customers/Index.php
M	app/Livewire/Admin/Customers/Show.php
M	app/Livewire/Admin/Dashboard.php
M	app/Livewire/Admin/Developers/Index.php
M	app/Livewire/Admin/Discounts/Form.php
M	app/Livewire/Admin/Discounts/Index.php
M	app/Livewire/Admin/Inventory/Index.php
A	app/Livewire/Admin/Layout/Sidebar.php
A	app/Livewire/Admin/Layout/TopBar.php
M	app/Livewire/Admin/Navigation/Index.php
M	app/Livewire/Admin/Orders/Index.php
M	app/Livewire/Admin/Orders/Show.php
D	app/Livewire/Admin/Pages/Create.php
D	app/Livewire/Admin/Pages/Edit.php
A	app/Livewire/Admin/Pages/Form.php
M	app/Livewire/Admin/Pages/Index.php
M	app/Livewire/Admin/Products/Form.php
M	app/Livewire/Admin/Products/Index.php
A	app/Livewire/Admin/Products/MediaManager.php
M	app/Livewire/Admin/Search/Settings.php
D	app/Livewire/Admin/Section.php
A	app/Livewire/Admin/Settings/Checkout.php
A	app/Livewire/Admin/Settings/Domains.php
M	app/Livewire/Admin/Settings/General.php
A	app/Livewire/Admin/Settings/Notifications.php
M	app/Livewire/Admin/Settings/Shipping.php
M	app/Livewire/Admin/Settings/Taxes.php
M	app/Livewire/Admin/Themes/Editor.php
M	app/Livewire/Admin/Themes/Index.php
D	app/Livewire/Settings/Appearance.php
D	app/Livewire/Settings/DeleteUserForm.php
D	app/Livewire/Settings/Password.php
D	app/Livewire/Settings/Profile.php
D	app/Livewire/Settings/TwoFactor.php
D	app/Livewire/Settings/TwoFactor/RecoveryCodes.php
M	app/Livewire/Storefront/Account/Addresses/Index.php
D	app/Livewire/Storefront/Account/Auth/ForgotPassword.php
M	app/Livewire/Storefront/Account/Auth/Login.php
A	app/Livewire/Storefront/Account/Auth/Logout.php
M	app/Livewire/Storefront/Account/Auth/Register.php
D	app/Livewire/Storefront/Account/Auth/ResetPassword.php
M	app/Livewire/Storefront/Account/Dashboard.php
M	app/Livewire/Storefront/Account/Orders/Index.php
M	app/Livewire/Storefront/Account/Orders/Show.php
M	app/Livewire/Storefront/Cart/Show.php
A	app/Livewire/Storefront/CartDrawer.php
M	app/Livewire/Storefront/Checkout/Confirmation.php
M	app/Livewire/Storefront/Checkout/Show.php
M	app/Livewire/Storefront/Collections/Index.php
M	app/Livewire/Storefront/Collections/Show.php
M	app/Livewire/Storefront/Home.php
M	app/Livewire/Storefront/Pages/Show.php
M	app/Livewire/Storefront/Products/Show.php
M	app/Livewire/Storefront/Search/Index.php
M	app/Livewire/Storefront/Search/Modal.php
M	app/Models/AnalyticsDaily.php
fc0e414131bb593ede7c23951a737493c34228fd