diff --git a/.gitignore b/.gitignore
index a60034f8..4ebba4c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,9 @@ package-lock.json
composer.lock
/provision/
/storage/logs/
+/AGENTS.md
+.DS_Store
+*/.DS_Store
+**/.DS_Store
+/coverage/
+/.scannerwork/
diff --git a/storage/framework/views/022dbb3fccd52deb058ea30f25080f19.php b/storage/framework/views/022dbb3fccd52deb058ea30f25080f19.php
new file mode 100755
index 00000000..ec16a215
--- /dev/null
+++ b/storage/framework/views/022dbb3fccd52deb058ea30f25080f19.php
@@ -0,0 +1,26 @@
+
+# Do Things the Laravel Way
+
+- Use ___SINGLE_BACKTICK___artisanCommand('make:')); ?>___SINGLE_BACKTICK___ commands to create new files (i.e. migrations, controllers, models, etc.). You can list available Artisan commands using ___SINGLE_BACKTICK___artisanCommand('list')); ?>___SINGLE_BACKTICK___ and check their parameters with ___SINGLE_BACKTICK___artisanCommand('[command] --help')); ?>___SINGLE_BACKTICK___.
+- If you're creating a generic PHP class, use ___SINGLE_BACKTICK___artisanCommand('make:class')); ?>___SINGLE_BACKTICK___.
+- Pass ___SINGLE_BACKTICK___--no-interaction___SINGLE_BACKTICK___ to all Artisan commands to ensure they work without user input. You should also pass the correct ___SINGLE_BACKTICK___--options___SINGLE_BACKTICK___ to ensure correct behavior.
+
+### Model Creation
+- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using ___SINGLE_BACKTICK___artisanCommand('make:model --help')); ?>___SINGLE_BACKTICK___ to check the available options.
+
+## APIs & Eloquent Resources
+- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention.
+
+## URL Generation
+- When generating links to other pages, prefer named routes and the ___SINGLE_BACKTICK___route()___SINGLE_BACKTICK___ function.
+
+## Testing
+- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model.
+- Faker: Use methods such as ___SINGLE_BACKTICK___$this->faker->word()___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___fake()->randomDigit()___SINGLE_BACKTICK___. Follow existing conventions whether to use ___SINGLE_BACKTICK___$this->faker___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___fake()___SINGLE_BACKTICK___.
+- When creating tests, make use of ___SINGLE_BACKTICK___artisanCommand('make:test [options] {name}')); ?>___SINGLE_BACKTICK___ to create a feature test, and pass ___SINGLE_BACKTICK___--unit___SINGLE_BACKTICK___ to create a unit test. Most tests should be feature tests.
+
+## Vite Error
+- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run ___SINGLE_BACKTICK___nodePackageManagerCommand('run build')); ?>___SINGLE_BACKTICK___ or ask the user to run ___SINGLE_BACKTICK___nodePackageManagerCommand('run dev')); ?>___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___composerCommand('run dev')); ?>___SINGLE_BACKTICK___.
+
\ No newline at end of file
diff --git a/storage/framework/views/03dd31afd9254ed8fcbc7f2d98b7886b.php b/storage/framework/views/03dd31afd9254ed8fcbc7f2d98b7886b.php
new file mode 100755
index 00000000..0f6f0e51
--- /dev/null
+++ b/storage/framework/views/03dd31afd9254ed8fcbc7f2d98b7886b.php
@@ -0,0 +1,25 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::auth.simple','data' => ['title' => $title ?? null]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::auth.simple'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($title ?? null)]); ?>
+
+
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/0671c1e4ad9ba3a0237dfc6bda5640d5.php b/storage/framework/views/0671c1e4ad9ba3a0237dfc6bda5640d5.php
new file mode 100755
index 00000000..c506b6b7
--- /dev/null
+++ b/storage/framework/views/0671c1e4ad9ba3a0237dfc6bda5640d5.php
@@ -0,0 +1,18 @@
+
+
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/1733b506fd63cc3a886bc889061a9c49.php b/storage/framework/views/1733b506fd63cc3a886bc889061a9c49.php
new file mode 100755
index 00000000..6dbd1fb1
--- /dev/null
+++ b/storage/framework/views/1733b506fd63cc3a886bc889061a9c49.php
@@ -0,0 +1,13 @@
+
+# Laravel Pint Code Formatter
+
+supportsPintAgentFormatter()): ?>
+- If you have modified any PHP files, you must run ___SINGLE_BACKTICK___binCommand('pint')); ?> --dirty --format agent___SINGLE_BACKTICK___ before finalizing changes to ensure your code matches the project's expected style.
+- Do not run ___SINGLE_BACKTICK___binCommand('pint')); ?> --test --format agent___SINGLE_BACKTICK___, simply run ___SINGLE_BACKTICK___binCommand('pint')); ?> --format agent___SINGLE_BACKTICK___ to fix any formatting issues.
+
+- If you have modified any PHP files, you must run ___SINGLE_BACKTICK___binCommand('pint')); ?> --dirty___SINGLE_BACKTICK___ before finalizing changes to ensure your code matches the project's expected style.
+- Do not run ___SINGLE_BACKTICK___binCommand('pint')); ?> --test___SINGLE_BACKTICK___, simply run ___SINGLE_BACKTICK___binCommand('pint')); ?>___SINGLE_BACKTICK___ to fix any formatting issues.
+
+
\ No newline at end of file
diff --git a/storage/framework/views/1e95f86b67c6be8d5a6a9e06e3f44af1.php b/storage/framework/views/1e95f86b67c6be8d5a6a9e06e3f44af1.php
new file mode 100755
index 00000000..9a6cfe46
--- /dev/null
+++ b/storage/framework/views/1e95f86b67c6be8d5a6a9e06e3f44af1.php
@@ -0,0 +1,48 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('WMS Dashboard')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::app'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('WMS Dashboard'))]); ?>
+
+
+
+
+
+
+
Warehouse management
+
user()->company->name); ?>
+
High-performance tenant-isolated warehouse operations with per-warehouse validation and licence-aware access.
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/2b3b75ec9892892981b355f1d066492b.blade.php b/storage/framework/views/2b3b75ec9892892981b355f1d066492b.blade.php
new file mode 100755
index 00000000..db546e28
--- /dev/null
+++ b/storage/framework/views/2b3b75ec9892892981b355f1d066492b.blade.php
@@ -0,0 +1,12 @@
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Laravel Pint Code Formatter
+
+@if($assist->supportsPintAgentFormatter())
+- If you have modified any PHP files, you must run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }} --dirty --format agent___SINGLE_BACKTICK___ before finalizing changes to ensure your code matches the project's expected style.
+- Do not run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }} --test --format agent___SINGLE_BACKTICK___, simply run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }} --format agent___SINGLE_BACKTICK___ to fix any formatting issues.
+@else
+- If you have modified any PHP files, you must run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }} --dirty___SINGLE_BACKTICK___ before finalizing changes to ensure your code matches the project's expected style.
+- Do not run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }} --test___SINGLE_BACKTICK___, simply run ___SINGLE_BACKTICK___{{ $assist->binCommand('pint') }}___SINGLE_BACKTICK___ to fix any formatting issues.
+@endif
diff --git a/storage/framework/views/2d21c7721a51fb6d42304f35ce55c99a.blade.php b/storage/framework/views/2d21c7721a51fb6d42304f35ce55c99a.blade.php
new file mode 100755
index 00000000..2dc9bb23
--- /dev/null
+++ b/storage/framework/views/2d21c7721a51fb6d42304f35ce55c99a.blade.php
@@ -0,0 +1,3 @@
+# Deployment
+
+- Laravel can be deployed using [Laravel Cloud](https://cloud.laravel.com/), which is the fastest way to deploy and scale production Laravel applications.
diff --git a/storage/framework/views/2f1c98c2ce33159902987186aed3ff2f.php b/storage/framework/views/2f1c98c2ce33159902987186aed3ff2f.php
new file mode 100755
index 00000000..7689d7cb
--- /dev/null
+++ b/storage/framework/views/2f1c98c2ce33159902987186aed3ff2f.php
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+ push('assets', $__output, $__assetKey);
+ } else {
+ \Livewire\Features\SupportScriptsAndAssets\SupportScriptsAndAssets::$nonLivewireAssets[$__assetKey] = $__output;
+ }
+ }
+ ?>
+
+
addLoop($__currentLoopData); foreach($__currentLoopData as $rule): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
warehouse->name); ?>
name); ?>
rule_key); ?>
severity); ?>
popLoop(); $loop = $__env->getLastLoop(); ?>
+ links()); ?>
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/31a97c27b64a1a65ee01e2a9982406f2.php b/storage/framework/views/31a97c27b64a1a65ee01e2a9982406f2.php
new file mode 100755
index 00000000..2c19a9e2
--- /dev/null
+++ b/storage/framework/views/31a97c27b64a1a65ee01e2a9982406f2.php
@@ -0,0 +1,4 @@
+# Deployment
+
+- Laravel can be deployed using [Laravel Cloud](https://cloud.laravel.com/), which is the fastest way to deploy and scale production Laravel applications.
+
\ No newline at end of file
diff --git a/storage/framework/views/328a30023f3bc8c1ee07bace0bbdb6b5.php b/storage/framework/views/328a30023f3bc8c1ee07bace0bbdb6b5.php
new file mode 100755
index 00000000..a2c33c4d
--- /dev/null
+++ b/storage/framework/views/328a30023f3bc8c1ee07bace0bbdb6b5.php
@@ -0,0 +1,60 @@
+---
+name: configuring-horizon
+description: "Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing Horizon (horizon:install, Sail setup), configuring config/horizon.php (supervisor blocks, queue assignments, balancing strategies, minProcesses/maxProcesses), fixing the dashboard (authorization via Gate::define viewHorizon, blank metrics, horizon:snapshot scheduling), and troubleshooting production issues (worker crashes, timeout chain ordering, LongWaitDetected notifications, waits config). Also covers job tagging and silencing. Do not use for generic Laravel queues without Horizon, SQS or database drivers, standalone Redis setup, Linux supervisord, Telescope, or job batching."
+license: MIT
+metadata:
+ author: laravel
+---
+
+# Horizon Configuration
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Horizon patterns and documentation covering configuration, supervisors, balancing, dashboard authorization, tags, notifications, metrics, and deployment.
+
+For deeper guidance on specific topics, read the relevant reference file before implementing:
+
+- ___SINGLE_BACKTICK___references/supervisors.md___SINGLE_BACKTICK___ covers supervisor blocks, balancing strategies, multi-queue setups, and auto-scaling
+- ___SINGLE_BACKTICK___references/notifications.md___SINGLE_BACKTICK___ covers LongWaitDetected alerts, notification routing, and the ___SINGLE_BACKTICK___waits___SINGLE_BACKTICK___ config
+- ___SINGLE_BACKTICK___references/tags.md___SINGLE_BACKTICK___ covers job tagging, dashboard filtering, and silencing noisy jobs
+- ___SINGLE_BACKTICK___references/metrics.md___SINGLE_BACKTICK___ covers the blank metrics dashboard, snapshot scheduling, and retention config
+
+## Basic Usage
+
+### Installation
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+artisanCommand('horizon:install')); ?>
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+### Supervisor Configuration
+
+Define supervisors in ___SINGLE_BACKTICK___config/horizon.php___SINGLE_BACKTICK___. The ___SINGLE_BACKTICK___environments___SINGLE_BACKTICK___ array merges into ___SINGLE_BACKTICK___defaults___SINGLE_BACKTICK___ and does not replace the whole supervisor block:
+
+___BOOST_SNIPPET_0___
+
+### Dashboard Authorization
+
+Restrict access in ___SINGLE_BACKTICK___App\Providers\HorizonServiceProvider___SINGLE_BACKTICK___:
+
+___BOOST_SNIPPET_1___
+
+## Verification
+
+1. Run ___SINGLE_BACKTICK___artisanCommand('horizon')); ?>___SINGLE_BACKTICK___ and visit ___SINGLE_BACKTICK___/horizon___SINGLE_BACKTICK___
+2. Confirm dashboard access is restricted as expected
+3. Check that metrics populate after scheduling ___SINGLE_BACKTICK___horizon:snapshot___SINGLE_BACKTICK___
+
+## Common Pitfalls
+
+- Horizon only works with the Redis queue driver. Other drivers such as database and SQS are not supported.
+- Redis Cluster is not supported. Horizon requires a standalone Redis connection.
+- Always check ___SINGLE_BACKTICK___config/horizon.php___SINGLE_BACKTICK___ before making changes to understand the current supervisor and environment configuration.
+- The ___SINGLE_BACKTICK___environments___SINGLE_BACKTICK___ array overrides only the keys you specify. It merges into ___SINGLE_BACKTICK___defaults___SINGLE_BACKTICK___ and does not replace it.
+- The timeout chain must be ordered: job ___SINGLE_BACKTICK___timeout___SINGLE_BACKTICK___ less than supervisor ___SINGLE_BACKTICK___timeout___SINGLE_BACKTICK___ less than ___SINGLE_BACKTICK___retry_after___SINGLE_BACKTICK___. The wrong order can cause jobs to be retried before Horizon finishes timing them out.
+- The metrics dashboard stays blank until ___SINGLE_BACKTICK___horizon:snapshot___SINGLE_BACKTICK___ is scheduled. Running ___SINGLE_BACKTICK___artisanCommand('horizon')); ?>___SINGLE_BACKTICK___ alone does not populate metrics.
+- Always use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for the latest Horizon documentation rather than relying on this skill alone.
+
\ No newline at end of file
diff --git a/storage/framework/views/3d7c4a50df1d313410bd5444267891cf.php b/storage/framework/views/3d7c4a50df1d313410bd5444267891cf.php
new file mode 100755
index 00000000..74094875
--- /dev/null
+++ b/storage/framework/views/3d7c4a50df1d313410bd5444267891cf.php
@@ -0,0 +1,535 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ make('partials.head', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
+
+
+
+
+
+ forceAssetInjection(); ?>
+scripts(); ?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/3e67020b08ceeca960cbb88b2dabc310.php b/storage/framework/views/3e67020b08ceeca960cbb88b2dabc310.php
new file mode 100755
index 00000000..9a075626
--- /dev/null
+++ b/storage/framework/views/3e67020b08ceeca960cbb88b2dabc310.php
@@ -0,0 +1,61 @@
+env;
+$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+
+
+pluck('tooltip:position'); ?>
+pluck('tooltip:kbd'); ?>
+pluck('tooltip'); ?>
+
+ 'top',
+ 'tooltipKbd' => null,
+ 'tooltip' => null,
+];
+$tooltipPosition ??= $attributes['tooltip-position'] ?? $attributes['tooltipPosition'] ?? $__defaults['tooltipPosition']; unset($attributes['tooltipPosition'], $attributes['tooltip-position']);
+$tooltipKbd ??= $attributes['tooltip-kbd'] ?? $attributes['tooltipKbd'] ?? $__defaults['tooltipKbd']; unset($attributes['tooltipKbd'], $attributes['tooltip-kbd']);
+$tooltip ??= $attributes['tooltip'] ?? $__defaults['tooltip']; unset($attributes['tooltip']);
+unset($__defaults);
+?>
+
+
+ ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/tooltip/index.blade.php', $__blaze->compiledPath.'/d2493bdc3defe8869c6c05a47a680be0.php'); ?>
+
+
+ $tooltip,'position' => $tooltipPosition,'kbd' => $tooltipKbd]; ?>
+
+pushData($__attrsd2493bdc3defe8869c6c05a47a680be0); ?>
+
+
+
+
+pushSlots($__slotsd2493bdc3defe8869c6c05a47a680be0); ?>
+
+
+
+popData(); ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/3feb8572f4b247ceb864938a4490c071.php b/storage/framework/views/3feb8572f4b247ceb864938a4490c071.php
new file mode 100755
index 00000000..0fdd4665
--- /dev/null
+++ b/storage/framework/views/3feb8572f4b247ceb864938a4490c071.php
@@ -0,0 +1,66 @@
+env;
+
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+
+
+ 'outline',
+];
+$variant ??= $attributes['variant'] ?? $__defaults['variant']; unset($attributes['variant']);
+unset($__defaults);
+?>
+
+add(match($variant) {
+ 'outline' => '[:where(&)]:size-6',
+ 'solid' => '[:where(&)]:size-6',
+ 'mini' => '[:where(&)]:size-5',
+ 'micro' => '[:where(&)]:size-4',
+ });
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/427a8d490b15671de462de58eb606c26.php b/storage/framework/views/427a8d490b15671de462de58eb606c26.php
new file mode 100755
index 00000000..c70f891e
--- /dev/null
+++ b/storage/framework/views/427a8d490b15671de462de58eb606c26.php
@@ -0,0 +1,5 @@
+startSection('title', __('Forbidden')); ?>
+startSection('code', '403'); ?>
+startSection('message', __($exception->getMessage() ?: 'Forbidden')); ?>
+
+make('errors::minimal', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
\ No newline at end of file
diff --git a/storage/framework/views/451733485e8f652c23e3efe8a90ee11b.php b/storage/framework/views/451733485e8f652c23e3efe8a90ee11b.php
new file mode 100755
index 00000000..7913eff7
--- /dev/null
+++ b/storage/framework/views/451733485e8f652c23e3efe8a90ee11b.php
@@ -0,0 +1,148 @@
+---
+name: livewire-development
+description: "Use for any task or question involving Livewire. Activate if user mentions Livewire, wire: directives, or Livewire-specific concepts like wire:model, wire:click, wire:sort, or islands, invoke this skill. Covers building new components, debugging reactivity issues, real-time form validation, drag-and-drop, loading states, migrating from Livewire 3 to 4, converting component formats (SFC/MFC/class-based), and performance optimization. Do not use for non-Livewire reactive UI (React, Vue, Alpine-only, Inertia.js) or standard Laravel forms without Livewire."
+license: MIT
+metadata:
+ author: laravel
+---
+
+# Livewire Development
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Livewire 4 patterns and documentation.
+
+## Basic Usage
+
+### Creating Components
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+# Single-file component (SFC - default in v4)
+# Creates: resources/views/components/⚡create-post.blade.php
+artisanCommand('make:livewire create-post')); ?>
+
+
+# Page component (SFC - Full Page in v4)
+# Creates: resources/views/pages/⚡create-post.blade.php
+artisanCommand('make:livewire pages::create-post')); ?>
+
+
+# Multi-file component (MFC)
+# Creates: resources/views/components/⚡create-post/create-post.php
+# resources/views/components/⚡create-post/create-post.blade.php
+artisanCommand('make:livewire create-post --mfc')); ?>
+
+
+# Class-based component (v3 style)
+# Creates: app/Livewire/CreatePost.php AND resources/views/livewire/create-post.blade.php
+artisanCommand('make:livewire create-post --class')); ?>
+
+
+# With namespace
+artisanCommand('make:livewire Posts/CreatePost')); ?>
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+### Converting Between Formats
+
+Use ___SINGLE_BACKTICK___artisanCommand('livewire:convert create-post')); ?>___SINGLE_BACKTICK___ to convert between single-file, multi-file, and class-based formats.
+
+### Choosing a Component Format
+
+> **Always follow the project's existing conventions first.** Before creating any component, inspect the project's existing Livewire components to determine the established format (SFC, MFC, or class-based) and directory structure. Check ___SINGLE_BACKTICK___appPath('Livewire/')); ?>___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___resources/views/components/___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___resources/views/livewire/___SINGLE_BACKTICK___ for existing components. If the project already uses a consistent format, **use that same format** — even if it differs from the Livewire v4 defaults below. Only fall back to the v4 defaults (SFC in ___SINGLE_BACKTICK___resources/views/components/___SINGLE_BACKTICK___) when no existing convention is established.
+
+Also check ___SINGLE_BACKTICK___config/livewire.php___SINGLE_BACKTICK___ for ___SINGLE_BACKTICK___make_command.type___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___make_command.emoji___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___component_locations___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___component_namespaces___SINGLE_BACKTICK___ overrides, which change the default format and where files are stored.
+
+### Component Format Reference
+
+| Format | Flag | Class Path | View Path |
+|--------|------|------------|-----------|
+| Single-file (SFC) | default | — | ___SINGLE_BACKTICK___resources/views/components/⚡create-post.blade.php___SINGLE_BACKTICK___ (PHP + Blade in one file) |
+| Full Page SFC | ___SINGLE_BACKTICK___pages::name___SINGLE_BACKTICK___ | — | ___SINGLE_BACKTICK___resources/views/pages/⚡create-post.blade.php___SINGLE_BACKTICK___ |
+| Multi-file (MFC) | ___SINGLE_BACKTICK___--mfc___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/components/⚡create-post/create-post.php___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/components/⚡create-post/create-post.blade.php___SINGLE_BACKTICK___ |
+| Class-based | ___SINGLE_BACKTICK___--class___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___appPath('Livewire/CreatePost.php')); ?>___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/livewire/create-post.blade.php___SINGLE_BACKTICK___ |
+| View-based | default (Blade-only) | — | ___SINGLE_BACKTICK___resources/views/components/⚡create-post.blade.php___SINGLE_BACKTICK___ (Blade-only with functional state) |
+
+> **Important:** The ⚡ prefix shown above is the **default** behavior in Livewire v4 — it is **configurable**. Check ___SINGLE_BACKTICK___config/livewire.php___SINGLE_BACKTICK___ for the ___SINGLE_BACKTICK___make_command.emoji___SINGLE_BACKTICK___ setting. When ___SINGLE_BACKTICK___true___SINGLE_BACKTICK___ (default), always include the ⚡ prefix in filenames you create. When ___SINGLE_BACKTICK___false___SINGLE_BACKTICK___, omit the ⚡ prefix from all paths above.
+
+Namespaced components map to subdirectories: ___SINGLE_BACKTICK___make:livewire Posts/CreatePost___SINGLE_BACKTICK___ creates ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post.blade.php___SINGLE_BACKTICK___ (single-file by default). Use ___SINGLE_BACKTICK___make:livewire Posts/CreatePost --mfc___SINGLE_BACKTICK___ for multi-file output at ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post/create-post.php___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post/create-post.blade.php___SINGLE_BACKTICK___.
+
+### Single-File Component Example
+
+___BOOST_SNIPPET_0___
+
+## Livewire 4 Specifics
+
+### Key Changes From Livewire 3
+
+These things changed in Livewire 4, but may not have been updated in this application. Verify this application's setup to ensure you follow existing conventions.
+
+- Use ___SINGLE_BACKTICK___Route::livewire()___SINGLE_BACKTICK___ for full-page components (e.g., ___SINGLE_BACKTICK___Route::livewire('/posts/create', CreatePost::class)___SINGLE_BACKTICK___); config keys renamed: ___SINGLE_BACKTICK___layout___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___component_layout___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___lazy_placeholder___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___component_placeholder___SINGLE_BACKTICK___.
+- ___SINGLE_BACKTICK___wire:model___SINGLE_BACKTICK___ now ignores child events by default (use ___SINGLE_BACKTICK___wire:model.deep___SINGLE_BACKTICK___ for old behavior); ___SINGLE_BACKTICK___wire:scroll___SINGLE_BACKTICK___ renamed to ___SINGLE_BACKTICK___wire:navigate:scroll___SINGLE_BACKTICK___.
+- Component tags must be properly closed; ___SINGLE_BACKTICK___wire:transition___SINGLE_BACKTICK___ now uses View Transitions API (modifiers removed).
+- JavaScript: ___SINGLE_BACKTICK___$wire.$js('name', fn)___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___$wire.$js.name = fn___SINGLE_BACKTICK___; ___SINGLE_BACKTICK___commit___SINGLE_BACKTICK___/___SINGLE_BACKTICK___request___SINGLE_BACKTICK___ hooks → ___SINGLE_BACKTICK___interceptMessage()___SINGLE_BACKTICK___/___SINGLE_BACKTICK___interceptRequest()___SINGLE_BACKTICK___.
+
+### New Features
+
+- Component formats: single-file (SFC), multi-file (MFC), view-based components.
+- Islands (___SINGLE_BACKTICK___@island___SINGLE_BACKTICK___) for isolated updates; async actions (___SINGLE_BACKTICK___wire:click.async___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___#[Async]___SINGLE_BACKTICK___) for parallel execution.
+- Deferred/bundled loading: ___SINGLE_BACKTICK___defer___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___lazy.bundle___SINGLE_BACKTICK___ for optimized component loading.
+
+| Feature | Usage | Purpose |
+|---------|-------|---------|
+| Islands | ___SINGLE_BACKTICK___@island(name: 'stats')___SINGLE_BACKTICK___ | Isolated update regions |
+| Async | ___SINGLE_BACKTICK___wire:click.async___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___#[Async]___SINGLE_BACKTICK___ | Non-blocking actions |
+| Deferred | ___SINGLE_BACKTICK___defer___SINGLE_BACKTICK___ attribute | Load after page render |
+| Bundled | ___SINGLE_BACKTICK___lazy.bundle___SINGLE_BACKTICK___ | Load multiple together |
+
+### New Directives
+
+- ___SINGLE_BACKTICK___wire:sort___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___wire:intersect___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___wire:ref___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___.renderless___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___.preserve-scroll___SINGLE_BACKTICK___ are available for use.
+- ___SINGLE_BACKTICK___data-loading___SINGLE_BACKTICK___ attribute automatically added to elements triggering network requests.
+
+| Directive | Purpose |
+|-----------|---------|
+| ___SINGLE_BACKTICK___wire:sort___SINGLE_BACKTICK___ | Drag-and-drop sorting |
+| ___SINGLE_BACKTICK___wire:intersect___SINGLE_BACKTICK___ | Viewport intersection detection |
+| ___SINGLE_BACKTICK___wire:ref___SINGLE_BACKTICK___ | Element references for JS |
+| ___SINGLE_BACKTICK___.renderless___SINGLE_BACKTICK___ | Component without rendering |
+| ___SINGLE_BACKTICK___.preserve-scroll___SINGLE_BACKTICK___ | Preserve scroll position |
+
+## Best Practices
+
+- Always use ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ in loops
+- Use ___SINGLE_BACKTICK___wire:loading___SINGLE_BACKTICK___ for loading states
+- Use ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___ for instant updates (default is debounced)
+- Validate and authorize in actions (treat like HTTP requests)
+
+## Configuration
+
+- ___SINGLE_BACKTICK___smart_wire_keys___SINGLE_BACKTICK___ defaults to ___SINGLE_BACKTICK___true___SINGLE_BACKTICK___; new configs: ___SINGLE_BACKTICK___component_locations___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___component_namespaces___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___make_command___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___csp_safe___SINGLE_BACKTICK___.
+
+## Alpine & JavaScript
+
+- ___SINGLE_BACKTICK___wire:transition___SINGLE_BACKTICK___ uses browser View Transitions API; ___SINGLE_BACKTICK___$errors___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___$intercept___SINGLE_BACKTICK___ magic properties available.
+- Non-blocking ___SINGLE_BACKTICK___wire:poll___SINGLE_BACKTICK___ and parallel ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___ updates improve performance.
+
+For interceptors and hooks, see [reference/javascript-hooks.md](reference/javascript-hooks.md).
+
+## Testing
+
+___BOOST_SNIPPET_1___
+
+## Verification
+
+1. Browser console: Check for JS errors
+2. Network tab: Verify Livewire requests return 200
+3. Ensure ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ on all ___SINGLE_BACKTICK___@foreach___SINGLE_BACKTICK___ loops
+
+## Common Pitfalls
+
+- Missing ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ in loops → unexpected re-rendering
+- Expecting ___SINGLE_BACKTICK___wire:model___SINGLE_BACKTICK___ real-time → use ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___
+- Unclosed component tags → syntax errors in v4
+- Using deprecated config keys or JS hooks
+- Including Alpine.js separately (already bundled in Livewire 4)
+
\ No newline at end of file
diff --git a/storage/framework/views/4ac1e3a0546377b4cde6befc3251bc22.blade.php b/storage/framework/views/4ac1e3a0546377b4cde6befc3251bc22.blade.php
new file mode 100755
index 00000000..757e0c5d
--- /dev/null
+++ b/storage/framework/views/4ac1e3a0546377b4cde6befc3251bc22.blade.php
@@ -0,0 +1,64 @@
+---
+name: fluxui-development
+description: "Use this skill for Flux UI development in Livewire applications only. Trigger when working with components, building or customizing Livewire component UIs, creating forms, modals, tables, or other interactive elements. Covers: flux: components (buttons, inputs, modals, forms, tables, date-pickers, kanban, badges, tooltips, etc.), component composition, Tailwind CSS styling, Heroicons/Lucide icon integration, validation patterns, responsive design, and theming. Do not use for non-Livewire frameworks or non-component styling."
+license: MIT
+metadata:
+ author: laravel
+---
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Flux UI Development
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Flux UI patterns and documentation.
+
+## Basic Usage
+
+This project uses the free edition of Flux UI, which includes all free components and variants but not Pro components.
+
+Flux UI is a component library for Livewire built with Tailwind CSS. It provides components that are easy to use and customize.
+
+Use Flux UI components when available. Fall back to standard Blade components when no Flux component exists for your needs.
+
+___BOOST_SNIPPET_0___
+
+## Available Components (Free Edition)
+
+Available: avatar, badge, brand, breadcrumbs, button, callout, card, checkbox, dropdown, field, heading, icon, input, modal, navbar, otp-input, pagination, profile, progress, radio, select, separator, skeleton, switch, table, text, textarea, toast, tooltip
+
+## Icons
+
+Flux includes [Heroicons](https://heroicons.com/) as its default icon set. Search for exact icon names on the Heroicons site - do not guess or invent icon names.
+
+___BOOST_SNIPPET_1___
+
+For icons not available in Heroicons, use [Lucide](https://lucide.dev/). Import the icons you need with the Artisan command:
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+{{ $assist->artisanCommand('flux:icon crown grip-vertical github') }}
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+## Common Patterns
+
+### Form Fields
+
+___BOOST_SNIPPET_2___
+
+### Modals
+
+___BOOST_SNIPPET_3___
+
+## Verification
+
+1. Check component renders correctly
+2. Test interactive states
+3. Verify mobile responsiveness
+
+## Common Pitfalls
+
+- Trying to use Pro-only components in the free edition
+- Not checking if a Flux component exists before creating custom implementations
+- Forgetting to use the ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ tool for component-specific documentation
+- Not following existing project patterns for Flux usage
diff --git a/storage/framework/views/50d7e9e02b0a09ef19c84ebdf6a22b69.php b/storage/framework/views/50d7e9e02b0a09ef19c84ebdf6a22b69.php
new file mode 100755
index 00000000..c9f048d7
--- /dev/null
+++ b/storage/framework/views/50d7e9e02b0a09ef19c84ebdf6a22b69.php
@@ -0,0 +1,65 @@
+env;
+$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+
+
+ null,
+ 'name' => null,
+];
+$icon ??= $attributes['icon'] ?? $__defaults['icon']; unset($attributes['icon']);
+$name ??= $attributes['name'] ?? $__defaults['name']; unset($attributes['name']);
+unset($__defaults);
+?>
+
+
+
+resolve('flux::' . 'icon.' . $icon); ?>
+pushData($attributes->all()); ?>
+
+
+
+
+mergedComponentSlots(), $__slotsa4ee29fd1f7dc8668566bb29201d64b5); ?>
+all(), $__slotsa4ee29fd1f7dc8668566bb29201d64b5, [], [], $__this ?? (isset($this) ? $this : null)); ?>
+
+
+
+
+ (app()->version() >= 12 ? hash('xxh128', 'flux') : md5('flux')) . '::' . 'icon.' . $icon,
+ 'data' => $__env->getCurrentComponentData(),
+] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('flux::' . 'icon.' . $icon); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+withAttributes($attributes->getAttributes()); ?> renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
+popData(); ?>
+
+
\ No newline at end of file
diff --git a/storage/framework/views/51b86fc05cc27ab2ed68114c96bd139e.php b/storage/framework/views/51b86fc05cc27ab2ed68114c96bd139e.php
new file mode 100755
index 00000000..7c0bd92e
--- /dev/null
+++ b/storage/framework/views/51b86fc05cc27ab2ed68114c96bd139e.php
@@ -0,0 +1,6 @@
+# Livewire
+
+- Livewire allow to build dynamic, reactive interfaces in PHP without writing JavaScript.
+- You can use Alpine.js for client-side interactions instead of JavaScript frameworks.
+- Keep state server-side so the UI reflects it. Validate and authorize in actions as you would in HTTP requests.
+
\ No newline at end of file
diff --git a/storage/framework/views/535d56990e285f39e3e99bf188f787e4.blade.php b/storage/framework/views/535d56990e285f39e3e99bf188f787e4.blade.php
new file mode 100755
index 00000000..18fa2282
--- /dev/null
+++ b/storage/framework/views/535d56990e285f39e3e99bf188f787e4.blade.php
@@ -0,0 +1,5 @@
+# Livewire
+
+- Livewire allow to build dynamic, reactive interfaces in PHP without writing JavaScript.
+- You can use Alpine.js for client-side interactions instead of JavaScript frameworks.
+- Keep state server-side so the UI reflects it. Validate and authorize in actions as you would in HTTP requests.
diff --git a/storage/framework/views/56412a9aeb6f1e81a1c3ce244096a4cf.blade.php b/storage/framework/views/56412a9aeb6f1e81a1c3ce244096a4cf.blade.php
new file mode 100755
index 00000000..f1a3296e
--- /dev/null
+++ b/storage/framework/views/56412a9aeb6f1e81a1c3ce244096a4cf.blade.php
@@ -0,0 +1,45 @@
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Laravel Boost Guidelines
+
+The Laravel Boost guidelines are specifically curated by Laravel maintainers for this application. These guidelines should be followed closely to ensure the best experience when building Laravel applications.
+
+## Foundational Context
+This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
+
+- php - {{ PHP_MAJOR_VERSION }}.{{ PHP_MINOR_VERSION }}
+@foreach (app(\Laravel\Roster\Roster::class)->packages()->unique(fn ($package) => $package->rawName()) as $package)
+- {{ $package->rawName() }} ({{ $package->name() }}) - v{{ $package->majorVersion() }}
+@endforeach
+
+@if (! empty(config('boost.purpose')))
+Application purpose: {!! config('boost.purpose') !!}
+
+@endif
+
+@if($assist->hasSkillsEnabled())
+## Skills Activation
+This project has domain-specific skills available in ___SINGLE_BACKTICK___**/skills/**___SINGLE_BACKTICK___. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
+@endif
+
+## Conventions
+- You must follow all existing code conventions used in this application. When creating or editing a file, check sibling files for the correct structure, approach, and naming.
+- Use descriptive names for variables and methods. For example, ___SINGLE_BACKTICK___isRegisteredForDiscounts___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___discount()___SINGLE_BACKTICK___.
+- Check for existing components to reuse before writing a new one.
+
+## Verification Scripts
+- Do not create verification scripts or tinker when tests cover that functionality and prove they work. Unit and feature tests are more important.
+
+## Application Structure & Architecture
+- Stick to existing directory structure; don't create new base folders without approval.
+- Do not change the application's dependencies without approval.
+
+## Frontend Bundling
+- If the user doesn't see a frontend change reflected in the UI, it could mean they need to run ___SINGLE_BACKTICK___{{ $assist->nodePackageManagerCommand('run build') }}___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___{{ $assist->nodePackageManagerCommand('run dev') }}___SINGLE_BACKTICK___, or ___SINGLE_BACKTICK___{{ $assist->composerCommand('run dev') }}___SINGLE_BACKTICK___. Ask them.
+
+## Documentation Files
+- You must only create documentation files if explicitly requested by the user.
+
+## Replies
+- Be concise in your explanations - focus on what's important rather than explaining obvious details.
diff --git a/storage/framework/views/5899f91fce72098f59725f5cb819c13e.php b/storage/framework/views/5899f91fce72098f59725f5cb819c13e.php
new file mode 100755
index 00000000..6d888242
--- /dev/null
+++ b/storage/framework/views/5899f91fce72098f59725f5cb819c13e.php
@@ -0,0 +1,40 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Payments')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::app'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Payments'))]); ?>
+
+
+
+
+
Payments and overrides
+
+
+
Company
Amount
Status
Description
addLoop($__currentLoopData); foreach($__currentLoopData as $payment): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
company->name); ?>
currency)); ?> amount / 100, 2)); ?>
status); ?>
description); ?>
popLoop(); $loop = $__env->getLastLoop(); ?>
+ links()); ?>
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/58b3275eb6ba3d933220e9ee77cacb6c.php b/storage/framework/views/58b3275eb6ba3d933220e9ee77cacb6c.php
new file mode 100755
index 00000000..a4a9238c
--- /dev/null
+++ b/storage/framework/views/58b3275eb6ba3d933220e9ee77cacb6c.php
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/5a04d9e224d78b3e92b98bc13b4ed474.php b/storage/framework/views/5a04d9e224d78b3e92b98bc13b4ed474.php
new file mode 100755
index 00000000..d95c47ab
--- /dev/null
+++ b/storage/framework/views/5a04d9e224d78b3e92b98bc13b4ed474.php
@@ -0,0 +1,66 @@
+---
+name: fluxui-development
+description: "Use this skill for Flux UI development in Livewire applications only. Trigger when working with components, building or customizing Livewire component UIs, creating forms, modals, tables, or other interactive elements. Covers: flux: components (buttons, inputs, modals, forms, tables, date-pickers, kanban, badges, tooltips, etc.), component composition, Tailwind CSS styling, Heroicons/Lucide icon integration, validation patterns, responsive design, and theming. Do not use for non-Livewire frameworks or non-component styling."
+license: MIT
+metadata:
+ author: laravel
+---
+
+# Flux UI Development
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Flux UI patterns and documentation.
+
+## Basic Usage
+
+This project uses the free edition of Flux UI, which includes all free components and variants but not Pro components.
+
+Flux UI is a component library for Livewire built with Tailwind CSS. It provides components that are easy to use and customize.
+
+Use Flux UI components when available. Fall back to standard Blade components when no Flux component exists for your needs.
+
+___BOOST_SNIPPET_0___
+
+## Available Components (Free Edition)
+
+Available: avatar, badge, brand, breadcrumbs, button, callout, card, checkbox, dropdown, field, heading, icon, input, modal, navbar, otp-input, pagination, profile, progress, radio, select, separator, skeleton, switch, table, text, textarea, toast, tooltip
+
+## Icons
+
+Flux includes [Heroicons](https://heroicons.com/) as its default icon set. Search for exact icon names on the Heroicons site - do not guess or invent icon names.
+
+___BOOST_SNIPPET_1___
+
+For icons not available in Heroicons, use [Lucide](https://lucide.dev/). Import the icons you need with the Artisan command:
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+artisanCommand('flux:icon crown grip-vertical github')); ?>
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+## Common Patterns
+
+### Form Fields
+
+___BOOST_SNIPPET_2___
+
+### Modals
+
+___BOOST_SNIPPET_3___
+
+## Verification
+
+1. Check component renders correctly
+2. Test interactive states
+3. Verify mobile responsiveness
+
+## Common Pitfalls
+
+- Trying to use Pro-only components in the free edition
+- Not checking if a Flux component exists before creating custom implementations
+- Forgetting to use the ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ tool for component-specific documentation
+- Not following existing project patterns for Flux usage
+
\ No newline at end of file
diff --git a/storage/framework/views/5ba41ac0767b13dfea3e295e820c4c2c.php b/storage/framework/views/5ba41ac0767b13dfea3e295e820c4c2c.php
new file mode 100755
index 00000000..8a0ab705
--- /dev/null
+++ b/storage/framework/views/5ba41ac0767b13dfea3e295e820c4c2c.php
@@ -0,0 +1,110 @@
+
+
+
+
+
+ make('partials.head', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
+
+
+
+
+
+ >
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/a5ba274f04adf22640ac6dac641993d0.php b/storage/framework/views/a5ba274f04adf22640ac6dac641993d0.php
new file mode 100755
index 00000000..41b47fb5
--- /dev/null
+++ b/storage/framework/views/a5ba274f04adf22640ac6dac641993d0.php
@@ -0,0 +1,17 @@
+ viewContext->mergeIntoNewEnvironment($__env); ?>
+
+ startComponent($layout->view, $layout->params); ?>
+ slot($layout->slotOrSection); ?>
+
+
+ endSlot(); ?>
+
+ viewContext->slots[-1] ?? [] as $name => $slot) {
+ $__env->slot($name, attributes: $slot->attributes->getAttributes());
+ echo $slot->toHtml();
+ $__env->endSlot();
+ }
+ ?>
+ renderComponent(); ?>
\ No newline at end of file
diff --git a/storage/framework/views/a75c31620703fd46512c58163b252a63.blade.php b/storage/framework/views/a75c31620703fd46512c58163b252a63.blade.php
new file mode 100755
index 00000000..227c7794
--- /dev/null
+++ b/storage/framework/views/a75c31620703fd46512c58163b252a63.blade.php
@@ -0,0 +1,58 @@
+---
+name: configuring-horizon
+description: "Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing Horizon (horizon:install, Sail setup), configuring config/horizon.php (supervisor blocks, queue assignments, balancing strategies, minProcesses/maxProcesses), fixing the dashboard (authorization via Gate::define viewHorizon, blank metrics, horizon:snapshot scheduling), and troubleshooting production issues (worker crashes, timeout chain ordering, LongWaitDetected notifications, waits config). Also covers job tagging and silencing. Do not use for generic Laravel queues without Horizon, SQS or database drivers, standalone Redis setup, Linux supervisord, Telescope, or job batching."
+license: MIT
+metadata:
+ author: laravel
+---
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Horizon Configuration
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Horizon patterns and documentation covering configuration, supervisors, balancing, dashboard authorization, tags, notifications, metrics, and deployment.
+
+For deeper guidance on specific topics, read the relevant reference file before implementing:
+
+- ___SINGLE_BACKTICK___references/supervisors.md___SINGLE_BACKTICK___ covers supervisor blocks, balancing strategies, multi-queue setups, and auto-scaling
+- ___SINGLE_BACKTICK___references/notifications.md___SINGLE_BACKTICK___ covers LongWaitDetected alerts, notification routing, and the ___SINGLE_BACKTICK___waits___SINGLE_BACKTICK___ config
+- ___SINGLE_BACKTICK___references/tags.md___SINGLE_BACKTICK___ covers job tagging, dashboard filtering, and silencing noisy jobs
+- ___SINGLE_BACKTICK___references/metrics.md___SINGLE_BACKTICK___ covers the blank metrics dashboard, snapshot scheduling, and retention config
+
+## Basic Usage
+
+### Installation
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+{{ $assist->artisanCommand('horizon:install') }}
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+### Supervisor Configuration
+
+Define supervisors in ___SINGLE_BACKTICK___config/horizon.php___SINGLE_BACKTICK___. The ___SINGLE_BACKTICK___environments___SINGLE_BACKTICK___ array merges into ___SINGLE_BACKTICK___defaults___SINGLE_BACKTICK___ and does not replace the whole supervisor block:
+
+___BOOST_SNIPPET_0___
+
+### Dashboard Authorization
+
+Restrict access in ___SINGLE_BACKTICK___App\Providers\HorizonServiceProvider___SINGLE_BACKTICK___:
+
+___BOOST_SNIPPET_1___
+
+## Verification
+
+1. Run ___SINGLE_BACKTICK___{{ $assist->artisanCommand('horizon') }}___SINGLE_BACKTICK___ and visit ___SINGLE_BACKTICK___/horizon___SINGLE_BACKTICK___
+2. Confirm dashboard access is restricted as expected
+3. Check that metrics populate after scheduling ___SINGLE_BACKTICK___horizon:snapshot___SINGLE_BACKTICK___
+
+## Common Pitfalls
+
+- Horizon only works with the Redis queue driver. Other drivers such as database and SQS are not supported.
+- Redis Cluster is not supported. Horizon requires a standalone Redis connection.
+- Always check ___SINGLE_BACKTICK___config/horizon.php___SINGLE_BACKTICK___ before making changes to understand the current supervisor and environment configuration.
+- The ___SINGLE_BACKTICK___environments___SINGLE_BACKTICK___ array overrides only the keys you specify. It merges into ___SINGLE_BACKTICK___defaults___SINGLE_BACKTICK___ and does not replace it.
+- The timeout chain must be ordered: job ___SINGLE_BACKTICK___timeout___SINGLE_BACKTICK___ less than supervisor ___SINGLE_BACKTICK___timeout___SINGLE_BACKTICK___ less than ___SINGLE_BACKTICK___retry_after___SINGLE_BACKTICK___. The wrong order can cause jobs to be retried before Horizon finishes timing them out.
+- The metrics dashboard stays blank until ___SINGLE_BACKTICK___horizon:snapshot___SINGLE_BACKTICK___ is scheduled. Running ___SINGLE_BACKTICK___{{ $assist->artisanCommand('horizon') }}___SINGLE_BACKTICK___ alone does not populate metrics.
+- Always use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for the latest Horizon documentation rather than relying on this skill alone.
diff --git a/storage/framework/views/a83bdc719249f1452cb68814aeaff8fb.php b/storage/framework/views/a83bdc719249f1452cb68814aeaff8fb.php
new file mode 100755
index 00000000..2500ca15
--- /dev/null
+++ b/storage/framework/views/a83bdc719249f1452cb68814aeaff8fb.php
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/storage/framework/views/ad027bc1f4f77db585097342990de57b.blade.php b/storage/framework/views/ad027bc1f4f77db585097342990de57b.blade.php
new file mode 100755
index 00000000..bd0abd39
--- /dev/null
+++ b/storage/framework/views/ad027bc1f4f77db585097342990de57b.blade.php
@@ -0,0 +1,17 @@
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# PHPUnit
+
+- This application uses PHPUnit for testing. All tests must be written as PHPUnit classes. Use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('make:test --phpunit {name}') }}___SINGLE_BACKTICK___ to create a new test.
+- If you see a test using "Pest", convert it to PHPUnit.
+- Every time a test has been updated, run that singular test.
+- When the tests relating to your feature are passing, ask the user if they would like to also run the entire test suite to make sure everything is still passing.
+- Tests should cover all happy paths, failure paths, and edge cases.
+- You must not remove any tests or test files from the tests directory without approval. These are not temporary or helper files; these are core to the application.
+
+## Running Tests
+- Run the minimal number of tests, using an appropriate filter, before finalizing.
+- To run all tests: ___SINGLE_BACKTICK___{{ $assist->artisanCommand('test --compact') }}___SINGLE_BACKTICK___.
+- To run all tests in a file: ___SINGLE_BACKTICK___{{ $assist->artisanCommand('test --compact tests/Feature/ExampleTest.php') }}___SINGLE_BACKTICK___.
+- To filter on a particular test name: ___SINGLE_BACKTICK___{{ $assist->artisanCommand('test --compact --filter=testName') }}___SINGLE_BACKTICK___ (recommended after making a change to a related file).
diff --git a/storage/framework/views/ad752539cb081521e34bf58da7d63fe0.blade.php b/storage/framework/views/ad752539cb081521e34bf58da7d63fe0.blade.php
new file mode 100755
index 00000000..c11cd7ed
--- /dev/null
+++ b/storage/framework/views/ad752539cb081521e34bf58da7d63fe0.blade.php
@@ -0,0 +1,142 @@
+---
+name: livewire-development
+description: "Use for any task or question involving Livewire. Activate if user mentions Livewire, wire: directives, or Livewire-specific concepts like wire:model, wire:click, wire:sort, or islands, invoke this skill. Covers building new components, debugging reactivity issues, real-time form validation, drag-and-drop, loading states, migrating from Livewire 3 to 4, converting component formats (SFC/MFC/class-based), and performance optimization. Do not use for non-Livewire reactive UI (React, Vue, Alpine-only, Inertia.js) or standard Laravel forms without Livewire."
+license: MIT
+metadata:
+ author: laravel
+---
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Livewire Development
+
+## Documentation
+
+Use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ for detailed Livewire 4 patterns and documentation.
+
+## Basic Usage
+
+### Creating Components
+
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___bash
+# Single-file component (SFC - default in v4)
+# Creates: resources/views/components/⚡create-post.blade.php
+{{ $assist->artisanCommand('make:livewire create-post') }}
+
+# Page component (SFC - Full Page in v4)
+# Creates: resources/views/pages/⚡create-post.blade.php
+{{ $assist->artisanCommand('make:livewire pages::create-post') }}
+
+# Multi-file component (MFC)
+# Creates: resources/views/components/⚡create-post/create-post.php
+# resources/views/components/⚡create-post/create-post.blade.php
+{{ $assist->artisanCommand('make:livewire create-post --mfc') }}
+
+# Class-based component (v3 style)
+# Creates: app/Livewire/CreatePost.php AND resources/views/livewire/create-post.blade.php
+{{ $assist->artisanCommand('make:livewire create-post --class') }}
+
+# With namespace
+{{ $assist->artisanCommand('make:livewire Posts/CreatePost') }}
+___SINGLE_BACKTICK______SINGLE_BACKTICK______SINGLE_BACKTICK___
+
+### Converting Between Formats
+
+Use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('livewire:convert create-post') }}___SINGLE_BACKTICK___ to convert between single-file, multi-file, and class-based formats.
+
+### Choosing a Component Format
+
+> **Always follow the project's existing conventions first.** Before creating any component, inspect the project's existing Livewire components to determine the established format (SFC, MFC, or class-based) and directory structure. Check ___SINGLE_BACKTICK___{{ $assist->appPath('Livewire/') }}___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___resources/views/components/___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___resources/views/livewire/___SINGLE_BACKTICK___ for existing components. If the project already uses a consistent format, **use that same format** — even if it differs from the Livewire v4 defaults below. Only fall back to the v4 defaults (SFC in ___SINGLE_BACKTICK___resources/views/components/___SINGLE_BACKTICK___) when no existing convention is established.
+
+Also check ___SINGLE_BACKTICK___config/livewire.php___SINGLE_BACKTICK___ for ___SINGLE_BACKTICK___make_command.type___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___make_command.emoji___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___component_locations___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___component_namespaces___SINGLE_BACKTICK___ overrides, which change the default format and where files are stored.
+
+### Component Format Reference
+
+| Format | Flag | Class Path | View Path |
+|--------|------|------------|-----------|
+| Single-file (SFC) | default | — | ___SINGLE_BACKTICK___resources/views/components/⚡create-post.blade.php___SINGLE_BACKTICK___ (PHP + Blade in one file) |
+| Full Page SFC | ___SINGLE_BACKTICK___pages::name___SINGLE_BACKTICK___ | — | ___SINGLE_BACKTICK___resources/views/pages/⚡create-post.blade.php___SINGLE_BACKTICK___ |
+| Multi-file (MFC) | ___SINGLE_BACKTICK___--mfc___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/components/⚡create-post/create-post.php___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/components/⚡create-post/create-post.blade.php___SINGLE_BACKTICK___ |
+| Class-based | ___SINGLE_BACKTICK___--class___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___{{ $assist->appPath('Livewire/CreatePost.php') }}___SINGLE_BACKTICK___ | ___SINGLE_BACKTICK___resources/views/livewire/create-post.blade.php___SINGLE_BACKTICK___ |
+| View-based | default (Blade-only) | — | ___SINGLE_BACKTICK___resources/views/components/⚡create-post.blade.php___SINGLE_BACKTICK___ (Blade-only with functional state) |
+
+> **Important:** The ⚡ prefix shown above is the **default** behavior in Livewire v4 — it is **configurable**. Check ___SINGLE_BACKTICK___config/livewire.php___SINGLE_BACKTICK___ for the ___SINGLE_BACKTICK___make_command.emoji___SINGLE_BACKTICK___ setting. When ___SINGLE_BACKTICK___true___SINGLE_BACKTICK___ (default), always include the ⚡ prefix in filenames you create. When ___SINGLE_BACKTICK___false___SINGLE_BACKTICK___, omit the ⚡ prefix from all paths above.
+
+Namespaced components map to subdirectories: ___SINGLE_BACKTICK___make:livewire Posts/CreatePost___SINGLE_BACKTICK___ creates ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post.blade.php___SINGLE_BACKTICK___ (single-file by default). Use ___SINGLE_BACKTICK___make:livewire Posts/CreatePost --mfc___SINGLE_BACKTICK___ for multi-file output at ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post/create-post.php___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___resources/views/components/posts/⚡create-post/create-post.blade.php___SINGLE_BACKTICK___.
+
+### Single-File Component Example
+
+___BOOST_SNIPPET_0___
+
+## Livewire 4 Specifics
+
+### Key Changes From Livewire 3
+
+These things changed in Livewire 4, but may not have been updated in this application. Verify this application's setup to ensure you follow existing conventions.
+
+- Use ___SINGLE_BACKTICK___Route::livewire()___SINGLE_BACKTICK___ for full-page components (e.g., ___SINGLE_BACKTICK___Route::livewire('/posts/create', CreatePost::class)___SINGLE_BACKTICK___); config keys renamed: ___SINGLE_BACKTICK___layout___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___component_layout___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___lazy_placeholder___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___component_placeholder___SINGLE_BACKTICK___.
+- ___SINGLE_BACKTICK___wire:model___SINGLE_BACKTICK___ now ignores child events by default (use ___SINGLE_BACKTICK___wire:model.deep___SINGLE_BACKTICK___ for old behavior); ___SINGLE_BACKTICK___wire:scroll___SINGLE_BACKTICK___ renamed to ___SINGLE_BACKTICK___wire:navigate:scroll___SINGLE_BACKTICK___.
+- Component tags must be properly closed; ___SINGLE_BACKTICK___wire:transition___SINGLE_BACKTICK___ now uses View Transitions API (modifiers removed).
+- JavaScript: ___SINGLE_BACKTICK___$wire.$js('name', fn)___SINGLE_BACKTICK___ → ___SINGLE_BACKTICK___$wire.$js.name = fn___SINGLE_BACKTICK___; ___SINGLE_BACKTICK___commit___SINGLE_BACKTICK___/___SINGLE_BACKTICK___request___SINGLE_BACKTICK___ hooks → ___SINGLE_BACKTICK___interceptMessage()___SINGLE_BACKTICK___/___SINGLE_BACKTICK___interceptRequest()___SINGLE_BACKTICK___.
+
+### New Features
+
+- Component formats: single-file (SFC), multi-file (MFC), view-based components.
+- Islands (___SINGLE_BACKTICK___@island___SINGLE_BACKTICK___) for isolated updates; async actions (___SINGLE_BACKTICK___wire:click.async___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___#[Async]___SINGLE_BACKTICK___) for parallel execution.
+- Deferred/bundled loading: ___SINGLE_BACKTICK___defer___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___lazy.bundle___SINGLE_BACKTICK___ for optimized component loading.
+
+| Feature | Usage | Purpose |
+|---------|-------|---------|
+| Islands | ___SINGLE_BACKTICK___@island(name: 'stats')___SINGLE_BACKTICK___ | Isolated update regions |
+| Async | ___SINGLE_BACKTICK___wire:click.async___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___#[Async]___SINGLE_BACKTICK___ | Non-blocking actions |
+| Deferred | ___SINGLE_BACKTICK___defer___SINGLE_BACKTICK___ attribute | Load after page render |
+| Bundled | ___SINGLE_BACKTICK___lazy.bundle___SINGLE_BACKTICK___ | Load multiple together |
+
+### New Directives
+
+- ___SINGLE_BACKTICK___wire:sort___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___wire:intersect___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___wire:ref___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___.renderless___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___.preserve-scroll___SINGLE_BACKTICK___ are available for use.
+- ___SINGLE_BACKTICK___data-loading___SINGLE_BACKTICK___ attribute automatically added to elements triggering network requests.
+
+| Directive | Purpose |
+|-----------|---------|
+| ___SINGLE_BACKTICK___wire:sort___SINGLE_BACKTICK___ | Drag-and-drop sorting |
+| ___SINGLE_BACKTICK___wire:intersect___SINGLE_BACKTICK___ | Viewport intersection detection |
+| ___SINGLE_BACKTICK___wire:ref___SINGLE_BACKTICK___ | Element references for JS |
+| ___SINGLE_BACKTICK___.renderless___SINGLE_BACKTICK___ | Component without rendering |
+| ___SINGLE_BACKTICK___.preserve-scroll___SINGLE_BACKTICK___ | Preserve scroll position |
+
+## Best Practices
+
+- Always use ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ in loops
+- Use ___SINGLE_BACKTICK___wire:loading___SINGLE_BACKTICK___ for loading states
+- Use ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___ for instant updates (default is debounced)
+- Validate and authorize in actions (treat like HTTP requests)
+
+## Configuration
+
+- ___SINGLE_BACKTICK___smart_wire_keys___SINGLE_BACKTICK___ defaults to ___SINGLE_BACKTICK___true___SINGLE_BACKTICK___; new configs: ___SINGLE_BACKTICK___component_locations___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___component_namespaces___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___make_command___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___csp_safe___SINGLE_BACKTICK___.
+
+## Alpine & JavaScript
+
+- ___SINGLE_BACKTICK___wire:transition___SINGLE_BACKTICK___ uses browser View Transitions API; ___SINGLE_BACKTICK___$errors___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___$intercept___SINGLE_BACKTICK___ magic properties available.
+- Non-blocking ___SINGLE_BACKTICK___wire:poll___SINGLE_BACKTICK___ and parallel ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___ updates improve performance.
+
+For interceptors and hooks, see [reference/javascript-hooks.md](reference/javascript-hooks.md).
+
+## Testing
+
+___BOOST_SNIPPET_1___
+
+## Verification
+
+1. Browser console: Check for JS errors
+2. Network tab: Verify Livewire requests return 200
+3. Ensure ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ on all ___SINGLE_BACKTICK___@foreach___SINGLE_BACKTICK___ loops
+
+## Common Pitfalls
+
+- Missing ___SINGLE_BACKTICK___wire:key___SINGLE_BACKTICK___ in loops → unexpected re-rendering
+- Expecting ___SINGLE_BACKTICK___wire:model___SINGLE_BACKTICK___ real-time → use ___SINGLE_BACKTICK___wire:model.live___SINGLE_BACKTICK___
+- Unclosed component tags → syntax errors in v4
+- Using deprecated config keys or JS hooks
+- Including Alpine.js separately (already bundled in Livewire 4)
diff --git a/storage/framework/views/ad9f0181ec154729c7c38b4367b13469.php b/storage/framework/views/ad9f0181ec154729c7c38b4367b13469.php
new file mode 100755
index 00000000..cd6f57d1
--- /dev/null
+++ b/storage/framework/views/ad9f0181ec154729c7c38b4367b13469.php
@@ -0,0 +1,9 @@
+
+
+
+
+## Media Library
+
+- ___SINGLE_BACKTICK___spatie/laravel-medialibrary___SINGLE_BACKTICK___ associates files with Eloquent models, with support for collections, conversions, and responsive images.
+- Always activate the ___SINGLE_BACKTICK___medialibrary-development___SINGLE_BACKTICK___ skill when working with media uploads, conversions, collections, responsive images, or any code that uses the ___SINGLE_BACKTICK___HasMedia___SINGLE_BACKTICK___ interface or ___SINGLE_BACKTICK___InteractsWithMedia___SINGLE_BACKTICK___ trait.
+
\ No newline at end of file
diff --git a/storage/framework/views/af7d0b83515afa7a9f51f7785245b1bb.php b/storage/framework/views/af7d0b83515afa7a9f51f7785245b1bb.php
new file mode 100755
index 00000000..cffa8816
--- /dev/null
+++ b/storage/framework/views/af7d0b83515afa7a9f51f7785245b1bb.php
@@ -0,0 +1,18 @@
+
+# PHPUnit
+
+- This application uses PHPUnit for testing. All tests must be written as PHPUnit classes. Use ___SINGLE_BACKTICK___artisanCommand('make:test --phpunit {name}')); ?>___SINGLE_BACKTICK___ to create a new test.
+- If you see a test using "Pest", convert it to PHPUnit.
+- Every time a test has been updated, run that singular test.
+- When the tests relating to your feature are passing, ask the user if they would like to also run the entire test suite to make sure everything is still passing.
+- Tests should cover all happy paths, failure paths, and edge cases.
+- You must not remove any tests or test files from the tests directory without approval. These are not temporary or helper files; these are core to the application.
+
+## Running Tests
+- Run the minimal number of tests, using an appropriate filter, before finalizing.
+- To run all tests: ___SINGLE_BACKTICK___artisanCommand('test --compact')); ?>___SINGLE_BACKTICK___.
+- To run all tests in a file: ___SINGLE_BACKTICK___artisanCommand('test --compact tests/Feature/ExampleTest.php')); ?>___SINGLE_BACKTICK___.
+- To filter on a particular test name: ___SINGLE_BACKTICK___artisanCommand('test --compact --filter=testName')); ?>___SINGLE_BACKTICK___ (recommended after making a change to a related file).
+
\ No newline at end of file
diff --git a/storage/framework/views/b5c3f87afb0664fbf4afacf217ec0328.php b/storage/framework/views/b5c3f87afb0664fbf4afacf217ec0328.php
new file mode 100755
index 00000000..fb145f1d
--- /dev/null
+++ b/storage/framework/views/b5c3f87afb0664fbf4afacf217ec0328.php
@@ -0,0 +1,252 @@
+## Filament
+
+- Filament is a Laravel UI framework built on Livewire, Alpine.js, and Tailwind CSS. UIs are defined in PHP via fluent, chainable components. Follow existing conventions in this app.
+- Use the ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ tool for official documentation on Artisan commands, code examples, testing, relationships, and idiomatic practices. If ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ is unavailable, refer to https://filamentphp.com/docs.
+
+### Artisan
+
+- Always use Filament-specific Artisan commands to create files. Find available commands with the ___SINGLE_BACKTICK___list-artisan-commands___SINGLE_BACKTICK___ tool, or run ___SINGLE_BACKTICK___php artisan --help___SINGLE_BACKTICK___.
+- Inspect required options before running, and always pass ___SINGLE_BACKTICK___--no-interaction___SINGLE_BACKTICK___.
+
+### Patterns
+
+Always use static ___SINGLE_BACKTICK___make()___SINGLE_BACKTICK___ methods to initialize components. Most configuration methods accept a ___SINGLE_BACKTICK___Closure___SINGLE_BACKTICK___ for dynamic values.
+
+Use ___SINGLE_BACKTICK___Get $get___SINGLE_BACKTICK___ to read other form field values for conditional logic:
+
+
+
+use Filament\Forms\Components\Select;
+use Filament\Forms\Components\TextInput;
+use Filament\Schemas\Components\Utilities\Get;
+
+Select::make('type')
+ ->options(CompanyType::class)
+ ->required()
+ ->live(),
+
+TextInput::make('company_name')
+ ->required()
+ ->visible(fn (Get $get): bool => $get('type') === 'business'),
+
+
+
+
+Use ___SINGLE_BACKTICK___Set $set___SINGLE_BACKTICK___ inside ___SINGLE_BACKTICK___->afterStateUpdated()___SINGLE_BACKTICK___ on a ___SINGLE_BACKTICK___->live()___SINGLE_BACKTICK___ field to mutate another field reactively. Prefer ___SINGLE_BACKTICK___->live(onBlur: true)___SINGLE_BACKTICK___ on text inputs to avoid per-keystroke updates:
+
+
+
+use Filament\Schemas\Components\Utilities\Set;
+use Illuminate\Support\Str;
+
+TextInput::make('title')
+ ->required()
+ ->live(onBlur: true)
+ ->afterStateUpdated(fn (Set $set, ?string $state) => $set(
+ 'slug',
+ Str::slug($state ?? ''),
+ )),
+
+TextInput::make('slug')
+ ->required(),
+
+
+
+
+Compose layout by nesting ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___. Children need explicit ___SINGLE_BACKTICK___->columnSpan()___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___->columnSpanFull()___SINGLE_BACKTICK___:
+
+
+
+use Filament\Schemas\Components\Grid;
+use Filament\Schemas\Components\Section;
+
+Section::make('Details')
+ ->schema([
+ Grid::make(2)->schema([
+ TextInput::make('first_name')
+ ->columnSpan(1),
+ TextInput::make('last_name')
+ ->columnSpan(1),
+ TextInput::make('bio')
+ ->columnSpanFull(),
+ ]),
+ ]),
+
+
+
+
+Use ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ for inline ___SINGLE_BACKTICK___HasMany___SINGLE_BACKTICK___ management. ___SINGLE_BACKTICK___->relationship()___SINGLE_BACKTICK___ with no args binds to the relationship matching the field name:
+
+
+
+use Filament\Forms\Components\Repeater;
+
+Repeater::make('qualifications')
+ ->relationship()
+ ->schema([
+ TextInput::make('institution')
+ ->required(),
+ TextInput::make('qualification')
+ ->required(),
+ ])
+ ->columns(2),
+
+
+
+
+Use ___SINGLE_BACKTICK___state()___SINGLE_BACKTICK___ with a ___SINGLE_BACKTICK___Closure___SINGLE_BACKTICK___ to compute derived column values:
+
+
+
+use Filament\Tables\Columns\TextColumn;
+
+TextColumn::make('full_name')
+ ->state(fn (User $record): string => "{$record->first_name} {$record->last_name}"),
+
+
+
+
+Use ___SINGLE_BACKTICK___SelectFilter___SINGLE_BACKTICK___ for enum or relationship filters, and ___SINGLE_BACKTICK___Filter___SINGLE_BACKTICK___ with a ___SINGLE_BACKTICK___->query()___SINGLE_BACKTICK___ closure for custom logic:
+
+
+
+use Filament\Tables\Filters\Filter;
+use Filament\Tables\Filters\SelectFilter;
+use Illuminate\Database\Eloquent\Builder;
+
+SelectFilter::make('status')
+ ->options(UserStatus::class),
+
+SelectFilter::make('author')
+ ->relationship('author', 'name'),
+
+Filter::make('verified')
+ ->query(fn (Builder $query) => $query->whereNotNull('email_verified_at')),
+
+
+
+
+Actions are buttons that encapsulate optional modal forms and behavior:
+
+
+
+use Filament\Actions\Action;
+
+Action::make('updateEmail')
+ ->schema([
+ TextInput::make('email')
+ ->email()
+ ->required(),
+ ])
+ ->action(fn (array $data, User $record) => $record->update($data)),
+
+
+
+
+### Testing
+
+Testing setup (requires ___SINGLE_BACKTICK___pestphp/pest-plugin-livewire___SINGLE_BACKTICK___ in ___SINGLE_BACKTICK___composer.json___SINGLE_BACKTICK___):
+
+- Always call ___SINGLE_BACKTICK___$this->actingAs(User::factory()->create())___SINGLE_BACKTICK___ before testing panel functionality.
+- For edit pages, pass ___SINGLE_BACKTICK___['record' => $user->id]___SINGLE_BACKTICK___, use ___SINGLE_BACKTICK___->call('save')___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___->call('create')___SINGLE_BACKTICK___), and do not assert ___SINGLE_BACKTICK___->assertRedirect()___SINGLE_BACKTICK___ (edit pages do not redirect after save).
+
+
+
+use function Pest\Livewire\livewire;
+
+livewire(ListUsers::class)
+ ->assertCanSeeTableRecords($users)
+ ->searchTable($users->first()->name)
+ ->assertCanSeeTableRecords($users->take(1))
+ ->assertCanNotSeeTableRecords($users->skip(1));
+
+
+
+
+use function Pest\Laravel\assertDatabaseHas;
+
+livewire(CreateUser::class)
+ ->fillForm([
+ 'name' => 'Test',
+ 'email' => 'test@example.com',
+ ])
+ ->call('create')
+ ->assertNotified()
+ ->assertHasNoFormErrors()
+ ->assertRedirect();
+
+assertDatabaseHas(User::class, [
+ 'name' => 'Test',
+ 'email' => 'test@example.com',
+]);
+
+
+
+
+livewire(EditUser::class, ['record' => $user->id])
+ ->fillForm(['name' => 'Updated'])
+ ->call('save')
+ ->assertNotified()
+ ->assertHasNoFormErrors();
+
+assertDatabaseHas(User::class, [
+ 'id' => $user->id,
+ 'name' => 'Updated',
+]);
+
+
+
+
+livewire(CreateUser::class)
+ ->fillForm([
+ 'name' => null,
+ 'email' => 'invalid-email',
+ ])
+ ->call('create')
+ ->assertHasFormErrors([
+ 'name' => 'required',
+ 'email' => 'email',
+ ])
+ ->assertNotNotified();
+
+
+
+
+Use ___SINGLE_BACKTICK___->callAction(DeleteAction::class)___SINGLE_BACKTICK___ for page actions, or ___SINGLE_BACKTICK___->callAction(TestAction::make('name')->table($record))___SINGLE_BACKTICK___ for table actions:
+
+
+
+use Filament\Actions\Testing\TestAction;
+
+livewire(ListUsers::class)
+ ->callAction(TestAction::make('promote')->table($user), [
+ 'role' => 'admin',
+ ])
+ ->assertNotified();
+
+
+
+
+### Correct Namespaces
+
+- Form fields (___SINGLE_BACKTICK___TextInput___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Select___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Forms\Components\___SINGLE_BACKTICK___
+- Infolist entries (___SINGLE_BACKTICK___TextEntry___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___IconEntry___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Infolists\Components\___SINGLE_BACKTICK___
+- Layout components (___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Fieldset___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Tabs___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Wizard___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Schemas\Components\___SINGLE_BACKTICK___
+- Schema utilities (___SINGLE_BACKTICK___Get___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Set___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Schemas\Components\Utilities\___SINGLE_BACKTICK___
+- Table columns (___SINGLE_BACKTICK___TextColumn___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___IconColumn___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Tables\Columns\___SINGLE_BACKTICK___
+- Table filters (___SINGLE_BACKTICK___SelectFilter___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Filter___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Tables\Filters\___SINGLE_BACKTICK___
+- Actions (___SINGLE_BACKTICK___DeleteAction___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___CreateAction___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Actions\___SINGLE_BACKTICK___. Never use ___SINGLE_BACKTICK___Filament\Tables\Actions\___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Filament\Forms\Actions\___SINGLE_BACKTICK___, or any other sub-namespace for actions.
+- Icons: ___SINGLE_BACKTICK___Filament\Support\Icons\Heroicon___SINGLE_BACKTICK___ enum (e.g., ___SINGLE_BACKTICK___Heroicon::PencilSquare___SINGLE_BACKTICK___)
+
+### Common Mistakes
+
+- **Never assume public file visibility.** File visibility is ___SINGLE_BACKTICK___private___SINGLE_BACKTICK___ by default. Always use ___SINGLE_BACKTICK___->visibility('public')___SINGLE_BACKTICK___ when public access is needed.
+- **Never assume full-width layout.** ___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Fieldset___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ do not span all columns by default.
+- **Use ___SINGLE_BACKTICK___Select::make('author_id')->relationship('author', 'name')___SINGLE_BACKTICK___ for BelongsTo fields.** ___SINGLE_BACKTICK___BelongsToSelect___SINGLE_BACKTICK___ does not exist in v4.
+- **___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ uses ___SINGLE_BACKTICK___->schema()___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___->fields()___SINGLE_BACKTICK___.**
+- **Never add ___SINGLE_BACKTICK___->dehydrated(false)___SINGLE_BACKTICK___ to fields that need to be saved.** It strips the value from form state before ___SINGLE_BACKTICK___->action()___SINGLE_BACKTICK___ or the save handler runs. Only use it for helper/UI-only fields.
+- **Use correct property types when overriding ___SINGLE_BACKTICK___Page___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Resource___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___Widget___SINGLE_BACKTICK___ properties.** These properties have union types or changed modifiers that must be preserved:
+ - ___SINGLE_BACKTICK___$navigationIcon___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected static string | BackedEnum | null___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___?string___SINGLE_BACKTICK___)
+ - ___SINGLE_BACKTICK___$navigationGroup___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected static string | UnitEnum | null___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___?string___SINGLE_BACKTICK___)
+ - ___SINGLE_BACKTICK___$view___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected string___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___protected static string___SINGLE_BACKTICK___) on ___SINGLE_BACKTICK___Page___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___Widget___SINGLE_BACKTICK___ classes
+
\ No newline at end of file
diff --git a/storage/framework/views/bcf59257f6020c74ea42048c26530074.blade.php b/storage/framework/views/bcf59257f6020c74ea42048c26530074.blade.php
new file mode 100755
index 00000000..97c35a80
--- /dev/null
+++ b/storage/framework/views/bcf59257f6020c74ea42048c26530074.blade.php
@@ -0,0 +1,8 @@
+{{-- Laravel Media Library Guidelines for AI Code Assistants --}}
+{{-- Source: https://spatie.be/docs/laravel-medialibrary --}}
+{{-- License: MIT | (c) Spatie --}}
+
+## Media Library
+
+- ___SINGLE_BACKTICK___spatie/laravel-medialibrary___SINGLE_BACKTICK___ associates files with Eloquent models, with support for collections, conversions, and responsive images.
+- Always activate the ___SINGLE_BACKTICK___medialibrary-development___SINGLE_BACKTICK___ skill when working with media uploads, conversions, collections, responsive images, or any code that uses the ___SINGLE_BACKTICK___HasMedia___SINGLE_BACKTICK___ interface or ___SINGLE_BACKTICK___InteractsWithMedia___SINGLE_BACKTICK___ trait.
diff --git a/storage/framework/views/blaze/055113a7972e219c28de39f37b71dbee.php b/storage/framework/views/blaze/055113a7972e219c28de39f37b71dbee.php
new file mode 100755
index 00000000..3777e7f7
--- /dev/null
+++ b/storage/framework/views/blaze/055113a7972e219c28de39f37b71dbee.php
@@ -0,0 +1,66 @@
+env;
+
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+
+
+ 'outline',
+];
+$variant ??= $attributes['variant'] ?? $__defaults['variant']; unset($attributes['variant']);
+unset($__defaults);
+?>
+
+add(match($variant) {
+ 'outline' => '[:where(&)]:size-6',
+ 'solid' => '[:where(&)]:size-6',
+ 'mini' => '[:where(&)]:size-5',
+ 'micro' => '[:where(&)]:size-4',
+ });
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+processPassthroughContent('ltrim', ltrim(ob_get_clean()));
+} endif; ?>
\ No newline at end of file
diff --git a/storage/framework/views/blaze/0895d97ac72dcf2060e8a83465f0c2ce.php b/storage/framework/views/blaze/0895d97ac72dcf2060e8a83465f0c2ce.php
new file mode 100755
index 00000000..d7017798
--- /dev/null
+++ b/storage/framework/views/blaze/0895d97ac72dcf2060e8a83465f0c2ce.php
@@ -0,0 +1,331 @@
+env;
+$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+pluck('icon:trailing'); ?>
+pluck('icon:leading'); ?>
+pluck('icon:variant'); ?>
+pluck('mask:dynamic'); ?>
+
+ $attributes->whereStartsWith('wire:model')->first(),
+ 'iconVariant' => 'mini',
+ 'variant' => 'outline',
+ 'iconTrailing' => null,
+ 'iconLeading' => null,
+ 'maskDynamic' => null,
+ 'expandable' => null,
+ 'clearable' => null,
+ 'copyable' => null,
+ 'viewable' => null,
+ 'invalid' => null,
+ 'loading' => null,
+ 'type' => 'text',
+ 'mask' => null,
+ 'size' => null,
+ 'icon' => null,
+ 'kbd' => null,
+ 'as' => null,
+];
+$name ??= $attributes['name'] ?? $__defaults['name']; unset($attributes['name']);
+$iconVariant ??= $attributes['icon-variant'] ?? $attributes['iconVariant'] ?? $__defaults['iconVariant']; unset($attributes['iconVariant'], $attributes['icon-variant']);
+$variant ??= $attributes['variant'] ?? $__defaults['variant']; unset($attributes['variant']);
+$iconTrailing ??= $attributes['icon-trailing'] ?? $attributes['iconTrailing'] ?? $__defaults['iconTrailing']; unset($attributes['iconTrailing'], $attributes['icon-trailing']);
+$iconLeading ??= $attributes['icon-leading'] ?? $attributes['iconLeading'] ?? $__defaults['iconLeading']; unset($attributes['iconLeading'], $attributes['icon-leading']);
+$maskDynamic ??= $attributes['mask-dynamic'] ?? $attributes['maskDynamic'] ?? $__defaults['maskDynamic']; unset($attributes['maskDynamic'], $attributes['mask-dynamic']);
+$expandable ??= $attributes['expandable'] ?? $__defaults['expandable']; unset($attributes['expandable']);
+$clearable ??= $attributes['clearable'] ?? $__defaults['clearable']; unset($attributes['clearable']);
+$copyable ??= $attributes['copyable'] ?? $__defaults['copyable']; unset($attributes['copyable']);
+$viewable ??= $attributes['viewable'] ?? $__defaults['viewable']; unset($attributes['viewable']);
+$invalid ??= $attributes['invalid'] ?? $__defaults['invalid']; unset($attributes['invalid']);
+$loading ??= $attributes['loading'] ?? $__defaults['loading']; unset($attributes['loading']);
+$type ??= $attributes['type'] ?? $__defaults['type']; unset($attributes['type']);
+$mask ??= $attributes['mask'] ?? $__defaults['mask']; unset($attributes['mask']);
+$size ??= $attributes['size'] ?? $__defaults['size']; unset($attributes['size']);
+$icon ??= $attributes['icon'] ?? $__defaults['icon']; unset($attributes['icon']);
+$kbd ??= $attributes['kbd'] ?? $__defaults['kbd']; unset($attributes['kbd']);
+$as ??= $attributes['as'] ?? $__defaults['as']; unset($attributes['as']);
+unset($__defaults);
+?>
+
+wire('model');
+$wireTarget = null;
+
+if ($loading !== false) {
+ if ($loading === true) {
+ $loading = true;
+ } elseif ($wireModel?->directive) {
+ $loading = $wireModel->hasModifier('live');
+ $wireTarget = $loading ? $wireModel->value() : null;
+ } else {
+ $wireTarget = $loading;
+ $loading = (bool) $loading;
+ }
+}
+
+$iconLeading ??= $icon;
+
+$hasLeadingIcon = (bool) ($iconLeading);
+$countOfTrailingIcons = collect([
+ (bool) $iconTrailing,
+ (bool) $kbd,
+ (bool) $clearable,
+ (bool) $copyable,
+ (bool) $viewable,
+ (bool) $expandable,
+])->filter()->count();
+
+$iconClasses = Flux::classes()
+ // When using the outline icon variant, we need to size it down to match the default icon sizes...
+ ->add($iconVariant === 'outline' ? 'size-5' : '')
+ ;
+
+$inputLoadingClasses = Flux::classes()
+ // When loading, we need to add some extra padding to the input to account for the loading icon...
+ ->add(match ($countOfTrailingIcons) {
+ 0 => 'pe-10',
+ 1 => 'pe-16',
+ 2 => 'pe-23',
+ 3 => 'pe-30',
+ 4 => 'pe-37',
+ 5 => 'pe-44',
+ 6 => 'pe-51',
+ })
+ ;
+
+$classes = Flux::classes()
+ ->add('w-full border rounded-lg block disabled:shadow-none dark:shadow-none')
+ ->add('appearance-none') // Without this, input[type="date"] on mobile doesn't respect w-full...
+ ->add(match ($size) {
+ default => 'text-base sm:text-sm py-2 h-10 leading-[1.375rem]', // This makes the height of the input 40px (same as buttons and such...)
+ 'sm' => 'text-sm py-1.5 h-8 leading-[1.125rem]',
+ 'xs' => 'text-xs py-1.5 h-6 leading-[1.125rem]',
+ })
+ ->add(match ($hasLeadingIcon) {
+ true => 'ps-10',
+ false => 'ps-3',
+ })
+ ->add(match ($countOfTrailingIcons) {
+ // Make sure there's enough padding on the right side of the input to account for all the icons...
+ 0 => 'pe-3',
+ 1 => 'pe-10',
+ 2 => 'pe-16',
+ 3 => 'pe-23',
+ 4 => 'pe-30',
+ 5 => 'pe-37',
+ 6 => 'pe-44',
+ })
+ ->add(match ($variant) { // Background...
+ 'outline' => 'bg-white dark:bg-white/10 dark:disabled:bg-white/[7%]',
+ 'filled' => 'bg-zinc-800/5 dark:bg-white/10 dark:disabled:bg-white/[7%]',
+ })
+ ->add(match ($variant) { // Text color
+ 'outline' => 'text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500',
+ 'filled' => 'text-zinc-700 placeholder-zinc-500 disabled:placeholder-zinc-400 dark:text-zinc-200 dark:placeholder-white/60 dark:disabled:placeholder-white/40',
+ })
+ ->add(match ($variant) { // Border...
+ 'outline' => 'shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5',
+ 'filled' => 'border-0',
+ })
+ ->add(match ($variant) { // Invalid...
+ 'outline' => 'data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500',
+ 'filled' => 'data-invalid:border-red-500'
+ })
+ ->add($attributes->pluck('class:input'))
+ ;
+?>
+
+
+ ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/with-field.blade.php', $__blaze->compiledPath.'/6d9b56edd9c9c8e51fa8e057a8020521.php'); ?>
+
+
+ $attributes,'name' => $name]; ?>
+
+pushData($__attrs6d9b56edd9c9c8e51fa8e057a8020521); ?>
+
+ ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/input/file.blade.php', $__blaze->compiledPath.'/1af25dd71f383ab33abb09bcbef1f074.php'); ?>
+pushData(['attributes' => $attributes,'name' => $name,'size' => $size]); ?>
+ $attributes,'name' => $name,'size' => $size], [], ['attributes', 'name', 'size'], [], $__this ?? (isset($this) ? $this : null)); ?>
+popData(); ?>
+ processPassthroughContent('trim', trim(ob_get_clean())), []); ?>
+pushSlots($__slots6d9b56edd9c9c8e51fa8e057a8020521); ?>
+
+
+
+popData(); ?>
+
+ ensureRequired('/Users/mag/Sites/WMS/Core/vendor/livewire/flux/src/../stubs/resources/views/flux/with-field.blade.php', $__blaze->compiledPath.'/6d9b56edd9c9c8e51fa8e057a8020521.php'); ?>
+
+
+ $attributes,'name' => $name]; ?>
+
+pushData($__attrs6d9b56edd9c9c8e51fa8e057a8020521); ?>
+
+
+
+
+processPassthroughContent('ltrim', ltrim(ob_get_clean()));
+} endif; ?>
\ No newline at end of file
diff --git a/storage/framework/views/blaze/fb217b67c45072adcf77500afdd69d1a.php b/storage/framework/views/blaze/fb217b67c45072adcf77500afdd69d1a.php
new file mode 100755
index 00000000..6a22b364
--- /dev/null
+++ b/storage/framework/views/blaze/fb217b67c45072adcf77500afdd69d1a.php
@@ -0,0 +1,65 @@
+env;
+$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+ 'block',
+];
+$variant ??= $attributes['variant'] ?? $__defaults['variant']; unset($attributes['variant']);
+unset($__defaults);
+?>
+
+add('min-w-0') // This is here to allow nested input elements like flux::input.file to truncate properly...
+ ->add('[&:not(:has([data-flux-field])):has([data-flux-control][disabled])>[data-flux-label]]:opacity-50') // Dim labels for fields with no nested fields when a control is disabled...
+ ->add('[&:has(>[data-flux-radio-group][disabled])>[data-flux-label]]:opacity-50') // Special case for radio groups because they are nested fields...
+ ->add('[&:has(>[data-flux-checkbox-group][disabled])>[data-flux-label]]:opacity-50') // Special case for checkbox groups because they are nested fields...
+ ->add(match ($variant) {
+ default => 'block',
+ 'bare' => '[:where(&)]:block',
+ 'inline' => [
+ 'grid gap-x-3 gap-y-1.5',
+ 'has-[[data-flux-label]~[data-flux-control]]:grid-cols-[1fr_auto]',
+ 'has-[[data-flux-control]~[data-flux-label]]:grid-cols-[auto_1fr]',
+ '[&>[data-flux-control]~[data-flux-description]]:row-start-2 [&>[data-flux-control]~[data-flux-description]]:col-start-2',
+ '[&>[data-flux-control]~[data-flux-error]]:col-span-2 [&>[data-flux-control]~[data-flux-error]]:mt-1', // Position error messages...
+ '[&>[data-flux-label]~[data-flux-control]]:row-start-1 [&>[data-flux-label]~[data-flux-control]]:col-start-2',
+ ],
+ })
+ ->add(match ($variant) {
+ default => [ // Adjust spacing around label...
+ '*:data-flux-label:mb-3 [&>[data-flux-label]:has(+[data-flux-description])]:mb-2',
+ ],
+ 'bare' => '',
+ 'inline' => '',
+ })
+ ->add(match ($variant) {
+ default => [ // Adjust spacing around description...
+ '[&>[data-flux-label]+[data-flux-description]]:mt-0',
+ '[&>[data-flux-label]+[data-flux-description]]:mb-3',
+ '[&>*:not([data-flux-label])+[data-flux-description]]:mt-3',
+ ],
+ 'bare' => '',
+ 'inline' => '',
+ });
+?>
+
+class($classes)); ?> data-flux-field>
+
+
+
+processPassthroughContent('ltrim', ltrim(ob_get_clean()));
+} endif; ?>
\ No newline at end of file
diff --git a/storage/framework/views/c171fffd32ee4668d0f75682681d7fac.blade.php b/storage/framework/views/c171fffd32ee4668d0f75682681d7fac.blade.php
new file mode 100755
index 00000000..d2b1b1df
--- /dev/null
+++ b/storage/framework/views/c171fffd32ee4668d0f75682681d7fac.blade.php
@@ -0,0 +1,7 @@
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Test Enforcement
+
+- Every change must be programmatically tested. Write a new test or update an existing test, then run the affected tests to make sure they pass.
+- Run the minimum number of tests needed to ensure code quality and speed. Use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('test --compact') }}___SINGLE_BACKTICK___ with a specific filename or filter.
diff --git a/storage/framework/views/c25757b57281971918e40cef8377d29f.php b/storage/framework/views/c25757b57281971918e40cef8377d29f.php
new file mode 100755
index 00000000..7c8a57ed
--- /dev/null
+++ b/storage/framework/views/c25757b57281971918e40cef8377d29f.php
@@ -0,0 +1,70 @@
+env;
+
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+
+
+ 'outline',
+];
+$variant ??= $attributes['variant'] ?? $__defaults['variant']; unset($attributes['variant']);
+unset($__defaults);
+?>
+
+add(match($variant) {
+ 'outline' => '[:where(&)]:size-6',
+ 'solid' => '[:where(&)]:size-6',
+ 'mini' => '[:where(&)]:size-5',
+ 'micro' => '[:where(&)]:size-4',
+ });
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/c57d3eaa101fccf59e91160add0873e9.php b/storage/framework/views/c57d3eaa101fccf59e91160add0873e9.php
new file mode 100755
index 00000000..e755f6a5
--- /dev/null
+++ b/storage/framework/views/c57d3eaa101fccf59e91160add0873e9.php
@@ -0,0 +1,49 @@
+
+# Laravel Boost Guidelines
+
+The Laravel Boost guidelines are specifically curated by Laravel maintainers for this application. These guidelines should be followed closely to ensure the best experience when building Laravel applications.
+
+## Foundational Context
+This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
+
+- php - .
+
+packages()->unique(fn ($package) => $package->rawName()); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $package): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
+- rawName()); ?> (name()); ?>) - vmajorVersion()); ?>
+
+popLoop(); $loop = $__env->getLastLoop(); ?>
+
+
+Application purpose:
+
+
+
+
+hasSkillsEnabled()): ?>
+## Skills Activation
+This project has domain-specific skills available in ___SINGLE_BACKTICK___**/skills/**___SINGLE_BACKTICK___. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
+
+
+## Conventions
+- You must follow all existing code conventions used in this application. When creating or editing a file, check sibling files for the correct structure, approach, and naming.
+- Use descriptive names for variables and methods. For example, ___SINGLE_BACKTICK___isRegisteredForDiscounts___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___discount()___SINGLE_BACKTICK___.
+- Check for existing components to reuse before writing a new one.
+
+## Verification Scripts
+- Do not create verification scripts or tinker when tests cover that functionality and prove they work. Unit and feature tests are more important.
+
+## Application Structure & Architecture
+- Stick to existing directory structure; don't create new base folders without approval.
+- Do not change the application's dependencies without approval.
+
+## Frontend Bundling
+- If the user doesn't see a frontend change reflected in the UI, it could mean they need to run ___SINGLE_BACKTICK___nodePackageManagerCommand('run build')); ?>___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___nodePackageManagerCommand('run dev')); ?>___SINGLE_BACKTICK___, or ___SINGLE_BACKTICK___composerCommand('run dev')); ?>___SINGLE_BACKTICK___. Ask them.
+
+## Documentation Files
+- You must only create documentation files if explicitly requested by the user.
+
+## Replies
+- Be concise in your explanations - focus on what's important rather than explaining obvious details.
+
\ No newline at end of file
diff --git a/storage/framework/views/c7f53026ad75139e3c26853dfbb23abe.php b/storage/framework/views/c7f53026ad75139e3c26853dfbb23abe.php
new file mode 100755
index 00000000..9465144f
--- /dev/null
+++ b/storage/framework/views/c7f53026ad75139e3c26853dfbb23abe.php
@@ -0,0 +1,25 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::app.sidebar','data' => ['title' => $title ?? null]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::app.sidebar'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($title ?? null)]); ?>
+
+
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/ca3eff7f87fe4ec964c978cca235819c.php b/storage/framework/views/ca3eff7f87fe4ec964c978cca235819c.php
new file mode 100755
index 00000000..143d8d66
--- /dev/null
+++ b/storage/framework/views/ca3eff7f87fe4ec964c978cca235819c.php
@@ -0,0 +1,137 @@
+
+ 'passkey.login-options',
+ 'submitRoute' => 'passkey.login',
+ 'label' => __('Sign in with a passkey'),
+ 'loadingLabel' => __('Authenticating...'),
+ 'separator' => __('Or continue with email'),
+]));
+
+foreach ($attributes->all() as $__key => $__value) {
+ if (in_array($__key, $__propNames)) {
+ $$__key = $$__key ?? $__value;
+ } else {
+ $__newAttributes[$__key] = $__value;
+ }
+}
+
+$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes);
+
+unset($__propNames);
+unset($__newAttributes);
+
+foreach (array_filter(([
+ 'optionsRoute' => 'passkey.login-options',
+ 'submitRoute' => 'passkey.login',
+ 'label' => __('Sign in with a passkey'),
+ 'loadingLabel' => __('Authenticating...'),
+ 'separator' => __('Or continue with email'),
+]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) {
+ $$__key = $$__key ?? $__value;
+}
+
+$__defined_vars = get_defined_vars();
+
+foreach ($attributes->all() as $__key => $__value) {
+ if (array_key_exists($__key, $__defined_vars)) unset($$__key);
+}
+
+unset($__defined_vars, $__key, $__value); ?>
+
+
+
+ push('assets', $__output, $__assetKey);
+ } else {
+ \Livewire\Features\SupportScriptsAndAssets\SupportScriptsAndAssets::$nonLivewireAssets[$__assetKey] = $__output;
+ }
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/ca9c53653290cb4678caf81c165063e8.php b/storage/framework/views/ca9c53653290cb4678caf81c165063e8.php
new file mode 100755
index 00000000..ceb8dfba
--- /dev/null
+++ b/storage/framework/views/ca9c53653290cb4678caf81c165063e8.php
@@ -0,0 +1,122 @@
+hasPages()): ?>
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/cf354c43de5e383e72b7f219415ae725.php b/storage/framework/views/cf354c43de5e383e72b7f219415ae725.php
new file mode 100755
index 00000000..79f9d070
--- /dev/null
+++ b/storage/framework/views/cf354c43de5e383e72b7f219415ae725.php
@@ -0,0 +1,16 @@
+# PHP
+
+
+- Always use curly braces for control structures, even for single-line bodies.
+- Use PHP 8 constructor property promotion: ___SINGLE_BACKTICK___public function __construct(public GitHub $github) { }___SINGLE_BACKTICK___. Do not leave empty zero-parameter ___SINGLE_BACKTICK_____construct()___SINGLE_BACKTICK___ methods unless the constructor is private.
+- Use explicit return type declarations and type hints for all method parameters: ___SINGLE_BACKTICK___function isAccessible(User $user, ?string $path = null): bool___SINGLE_BACKTICK___
+enums()) || !preg_match('/[A-Z]{3,8}/', $assist->enumContents())): ?>
+- Use TitleCase for Enum keys: ___SINGLE_BACKTICK___FavoritePerson___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___BestLake___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Monthly___SINGLE_BACKTICK___.
+
+- Follow existing application Enum naming conventions.
+
+- Prefer PHPDoc blocks over inline comments. Only add inline comments for exceptionally complex logic.
+- Use array shape type definitions in PHPDoc blocks.
+
\ No newline at end of file
diff --git a/storage/framework/views/d1274e2bfa1a127a505bbfd5767d9191.php b/storage/framework/views/d1274e2bfa1a127a505bbfd5767d9191.php
new file mode 100755
index 00000000..e9360aeb
--- /dev/null
+++ b/storage/framework/views/d1274e2bfa1a127a505bbfd5767d9191.php
@@ -0,0 +1,69 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/d1640c796ea7d658f5d537a146d3b49c.blade.php b/storage/framework/views/d1640c796ea7d658f5d537a146d3b49c.blade.php
new file mode 100755
index 00000000..1e0b28c6
--- /dev/null
+++ b/storage/framework/views/d1640c796ea7d658f5d537a146d3b49c.blade.php
@@ -0,0 +1,25 @@
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+# Do Things the Laravel Way
+
+- Use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('make:') }}___SINGLE_BACKTICK___ commands to create new files (i.e. migrations, controllers, models, etc.). You can list available Artisan commands using ___SINGLE_BACKTICK___{{ $assist->artisanCommand('list') }}___SINGLE_BACKTICK___ and check their parameters with ___SINGLE_BACKTICK___{{ $assist->artisanCommand('[command] --help') }}___SINGLE_BACKTICK___.
+- If you're creating a generic PHP class, use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('make:class') }}___SINGLE_BACKTICK___.
+- Pass ___SINGLE_BACKTICK___--no-interaction___SINGLE_BACKTICK___ to all Artisan commands to ensure they work without user input. You should also pass the correct ___SINGLE_BACKTICK___--options___SINGLE_BACKTICK___ to ensure correct behavior.
+
+### Model Creation
+- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using ___SINGLE_BACKTICK___{{ $assist->artisanCommand('make:model --help') }}___SINGLE_BACKTICK___ to check the available options.
+
+## APIs & Eloquent Resources
+- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention.
+
+## URL Generation
+- When generating links to other pages, prefer named routes and the ___SINGLE_BACKTICK___route()___SINGLE_BACKTICK___ function.
+
+## Testing
+- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model.
+- Faker: Use methods such as ___SINGLE_BACKTICK___$this->faker->word()___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___fake()->randomDigit()___SINGLE_BACKTICK___. Follow existing conventions whether to use ___SINGLE_BACKTICK___$this->faker___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___fake()___SINGLE_BACKTICK___.
+- When creating tests, make use of ___SINGLE_BACKTICK___{{ $assist->artisanCommand('make:test [options] {name}') }}___SINGLE_BACKTICK___ to create a feature test, and pass ___SINGLE_BACKTICK___--unit___SINGLE_BACKTICK___ to create a unit test. Most tests should be feature tests.
+
+## Vite Error
+- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run ___SINGLE_BACKTICK___{{ $assist->nodePackageManagerCommand('run build') }}___SINGLE_BACKTICK___ or ask the user to run ___SINGLE_BACKTICK___{{ $assist->nodePackageManagerCommand('run dev') }}___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___{{ $assist->composerCommand('run dev') }}___SINGLE_BACKTICK___.
diff --git a/storage/framework/views/d2288a6f0532c605dcfcb05018d7d87c.php b/storage/framework/views/d2288a6f0532c605dcfcb05018d7d87c.php
new file mode 100755
index 00000000..a3afdb0b
--- /dev/null
+++ b/storage/framework/views/d2288a6f0532c605dcfcb05018d7d87c.php
@@ -0,0 +1,38 @@
+# Laravel Boost
+hasMcpEnabled()): ?>
+
+## Tools
+- Laravel Boost is an MCP server with tools designed specifically for this application. Prefer Boost tools over manual alternatives like shell commands or file reads.
+- Use ___SINGLE_BACKTICK___database-query___SINGLE_BACKTICK___ to run read-only queries against the database instead of writing raw SQL in tinker.
+- Use ___SINGLE_BACKTICK___database-schema___SINGLE_BACKTICK___ to inspect table structure before writing migrations or models.
+- Use ___SINGLE_BACKTICK___get-absolute-url___SINGLE_BACKTICK___ to resolve the correct scheme, domain, and port for project URLs. Always use this before sharing a URL with the user.
+
+- Use ___SINGLE_BACKTICK___browser-logs___SINGLE_BACKTICK___ to read browser logs, errors, and exceptions. Only recent logs are useful, ignore old entries.
+
+
+## Searching Documentation (IMPORTANT)
+- Always use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ before making code changes. Do not skip this step. It returns version-specific docs based on installed packages automatically.
+- Pass a ___SINGLE_BACKTICK___packages___SINGLE_BACKTICK___ array to scope results when you know which packages are relevant.
+- Use multiple broad, topic-based queries: ___SINGLE_BACKTICK___['rate limiting', 'routing rate limiting', 'routing']___SINGLE_BACKTICK___. Expect the most relevant results first.
+- Do not add package names to queries because package info is already shared. Use ___SINGLE_BACKTICK___test resource table___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___filament 4 test resource table___SINGLE_BACKTICK___.
+### Search Syntax
+1. Use words for auto-stemmed AND logic: ___SINGLE_BACKTICK___rate limit___SINGLE_BACKTICK___ matches both "rate" AND "limit".
+2. Use ___SINGLE_BACKTICK___"quoted phrases"___SINGLE_BACKTICK___ for exact position matching: ___SINGLE_BACKTICK___"infinite scroll"___SINGLE_BACKTICK___ requires adjacent words in order.
+3. Combine words and phrases for mixed queries: ___SINGLE_BACKTICK___middleware "rate limit"___SINGLE_BACKTICK___.
+4. Use multiple queries for OR logic: ___SINGLE_BACKTICK___queries=["authentication", "middleware"]___SINGLE_BACKTICK___.
+
+
+## Artisan
+- Run Artisan commands directly via the command line (e.g., ___SINGLE_BACKTICK___artisanCommand('route:list')); ?>___SINGLE_BACKTICK___). Use ___SINGLE_BACKTICK___artisanCommand('list')); ?>___SINGLE_BACKTICK___ to discover available commands and ___SINGLE_BACKTICK___artisanCommand('[command] --help')); ?>___SINGLE_BACKTICK___ to check parameters.
+- Inspect routes with ___SINGLE_BACKTICK___artisanCommand('route:list')); ?>___SINGLE_BACKTICK___. Filter with: ___SINGLE_BACKTICK___--method=GET___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--name=users___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--path=api___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--except-vendor___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--only-vendor___SINGLE_BACKTICK___.
+- Read configuration values using dot notation: ___SINGLE_BACKTICK___artisanCommand('config:show app.name')); ?>___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___artisanCommand('config:show database.default')); ?>___SINGLE_BACKTICK___. Or read config files directly from the ___SINGLE_BACKTICK___config/___SINGLE_BACKTICK___ directory.
+
+## Tinker
+- Execute PHP in app context for debugging and testing code. Do not create models without user approval, prefer tests with factories instead. Prefer existing Artisan commands over custom tinker code.
+hasMcpEnabled() && config('boost.tinker_tool_enabled', false)): ?>
+- Use the ___SINGLE_BACKTICK___tinker___SINGLE_BACKTICK___ MCP tool to execute PHP code instead of the CLI. It avoids shell escaping issues and runs the snippet in the Laravel application context.
+
+- Always use single quotes to prevent shell expansion: ___SINGLE_BACKTICK___artisanCommand("tinker --execute 'Your::code();'")); ?>___SINGLE_BACKTICK___
+ - Double quotes for PHP strings inside: ___SINGLE_BACKTICK___artisanCommand("tinker --execute 'User::where(\"active\", true)->count();'")); ?>___SINGLE_BACKTICK___
+
+
\ No newline at end of file
diff --git a/storage/framework/views/d82dcf8506aa75b75605cd2014e2effa.php b/storage/framework/views/d82dcf8506aa75b75605cd2014e2effa.php
new file mode 100755
index 00000000..f64ef94e
--- /dev/null
+++ b/storage/framework/views/d82dcf8506aa75b75605cd2014e2effa.php
@@ -0,0 +1,40 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Licence Keys')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::app'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Licence Keys'))]); ?>
+
+
+
+
New key:
+
+
Licence keys
+
+
+
Company
Label
Plan
Prefix
Expires
addLoop($__currentLoopData); foreach($__currentLoopData as $license): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
company->name); ?>
label); ?>
plan); ?>
key_prefix); ?>
expires_at)->toDateString()); ?>
popLoop(); $loop = $__env->getLastLoop(); ?>
+ links()); ?>
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/db800410232a09db40ffd9b85b3884fa.blade.php b/storage/framework/views/db800410232a09db40ffd9b85b3884fa.blade.php
new file mode 100755
index 00000000..85a17c6d
--- /dev/null
+++ b/storage/framework/views/db800410232a09db40ffd9b85b3884fa.blade.php
@@ -0,0 +1,251 @@
+## Filament
+
+- Filament is a Laravel UI framework built on Livewire, Alpine.js, and Tailwind CSS. UIs are defined in PHP via fluent, chainable components. Follow existing conventions in this app.
+- Use the ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ tool for official documentation on Artisan commands, code examples, testing, relationships, and idiomatic practices. If ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ is unavailable, refer to https://filamentphp.com/docs.
+
+### Artisan
+
+- Always use Filament-specific Artisan commands to create files. Find available commands with the ___SINGLE_BACKTICK___list-artisan-commands___SINGLE_BACKTICK___ tool, or run ___SINGLE_BACKTICK___php artisan --help___SINGLE_BACKTICK___.
+- Inspect required options before running, and always pass ___SINGLE_BACKTICK___--no-interaction___SINGLE_BACKTICK___.
+
+### Patterns
+
+Always use static ___SINGLE_BACKTICK___make()___SINGLE_BACKTICK___ methods to initialize components. Most configuration methods accept a ___SINGLE_BACKTICK___Closure___SINGLE_BACKTICK___ for dynamic values.
+
+Use ___SINGLE_BACKTICK___Get $get___SINGLE_BACKTICK___ to read other form field values for conditional logic:
+
+@verbatim
+
+use Filament\Forms\Components\Select;
+use Filament\Forms\Components\TextInput;
+use Filament\Schemas\Components\Utilities\Get;
+
+Select::make('type')
+ ->options(CompanyType::class)
+ ->required()
+ ->live(),
+
+TextInput::make('company_name')
+ ->required()
+ ->visible(fn (Get $get): bool => $get('type') === 'business'),
+
+
+@endverbatim
+
+Use ___SINGLE_BACKTICK___Set $set___SINGLE_BACKTICK___ inside ___SINGLE_BACKTICK___->afterStateUpdated()___SINGLE_BACKTICK___ on a ___SINGLE_BACKTICK___->live()___SINGLE_BACKTICK___ field to mutate another field reactively. Prefer ___SINGLE_BACKTICK___->live(onBlur: true)___SINGLE_BACKTICK___ on text inputs to avoid per-keystroke updates:
+
+@verbatim
+
+use Filament\Schemas\Components\Utilities\Set;
+use Illuminate\Support\Str;
+
+TextInput::make('title')
+ ->required()
+ ->live(onBlur: true)
+ ->afterStateUpdated(fn (Set $set, ?string $state) => $set(
+ 'slug',
+ Str::slug($state ?? ''),
+ )),
+
+TextInput::make('slug')
+ ->required(),
+
+
+@endverbatim
+
+Compose layout by nesting ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___. Children need explicit ___SINGLE_BACKTICK___->columnSpan()___SINGLE_BACKTICK___ or ___SINGLE_BACKTICK___->columnSpanFull()___SINGLE_BACKTICK___:
+
+@verbatim
+
+use Filament\Schemas\Components\Grid;
+use Filament\Schemas\Components\Section;
+
+Section::make('Details')
+ ->schema([
+ Grid::make(2)->schema([
+ TextInput::make('first_name')
+ ->columnSpan(1),
+ TextInput::make('last_name')
+ ->columnSpan(1),
+ TextInput::make('bio')
+ ->columnSpanFull(),
+ ]),
+ ]),
+
+
+@endverbatim
+
+Use ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ for inline ___SINGLE_BACKTICK___HasMany___SINGLE_BACKTICK___ management. ___SINGLE_BACKTICK___->relationship()___SINGLE_BACKTICK___ with no args binds to the relationship matching the field name:
+
+@verbatim
+
+use Filament\Forms\Components\Repeater;
+
+Repeater::make('qualifications')
+ ->relationship()
+ ->schema([
+ TextInput::make('institution')
+ ->required(),
+ TextInput::make('qualification')
+ ->required(),
+ ])
+ ->columns(2),
+
+
+@endverbatim
+
+Use ___SINGLE_BACKTICK___state()___SINGLE_BACKTICK___ with a ___SINGLE_BACKTICK___Closure___SINGLE_BACKTICK___ to compute derived column values:
+
+@verbatim
+
+use Filament\Tables\Columns\TextColumn;
+
+TextColumn::make('full_name')
+ ->state(fn (User $record): string => "{$record->first_name} {$record->last_name}"),
+
+
+@endverbatim
+
+Use ___SINGLE_BACKTICK___SelectFilter___SINGLE_BACKTICK___ for enum or relationship filters, and ___SINGLE_BACKTICK___Filter___SINGLE_BACKTICK___ with a ___SINGLE_BACKTICK___->query()___SINGLE_BACKTICK___ closure for custom logic:
+
+@verbatim
+
+use Filament\Tables\Filters\Filter;
+use Filament\Tables\Filters\SelectFilter;
+use Illuminate\Database\Eloquent\Builder;
+
+SelectFilter::make('status')
+ ->options(UserStatus::class),
+
+SelectFilter::make('author')
+ ->relationship('author', 'name'),
+
+Filter::make('verified')
+ ->query(fn (Builder $query) => $query->whereNotNull('email_verified_at')),
+
+
+@endverbatim
+
+Actions are buttons that encapsulate optional modal forms and behavior:
+
+@verbatim
+
+use Filament\Actions\Action;
+
+Action::make('updateEmail')
+ ->schema([
+ TextInput::make('email')
+ ->email()
+ ->required(),
+ ])
+ ->action(fn (array $data, User $record) => $record->update($data)),
+
+
+@endverbatim
+
+### Testing
+
+Testing setup (requires ___SINGLE_BACKTICK___pestphp/pest-plugin-livewire___SINGLE_BACKTICK___ in ___SINGLE_BACKTICK___composer.json___SINGLE_BACKTICK___):
+
+- Always call ___SINGLE_BACKTICK___$this->actingAs(User::factory()->create())___SINGLE_BACKTICK___ before testing panel functionality.
+- For edit pages, pass ___SINGLE_BACKTICK___['record' => $user->id]___SINGLE_BACKTICK___, use ___SINGLE_BACKTICK___->call('save')___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___->call('create')___SINGLE_BACKTICK___), and do not assert ___SINGLE_BACKTICK___->assertRedirect()___SINGLE_BACKTICK___ (edit pages do not redirect after save).
+
+@verbatim
+
+use function Pest\Livewire\livewire;
+
+livewire(ListUsers::class)
+ ->assertCanSeeTableRecords($users)
+ ->searchTable($users->first()->name)
+ ->assertCanSeeTableRecords($users->take(1))
+ ->assertCanNotSeeTableRecords($users->skip(1));
+
+
+
+
+use function Pest\Laravel\assertDatabaseHas;
+
+livewire(CreateUser::class)
+ ->fillForm([
+ 'name' => 'Test',
+ 'email' => 'test@example.com',
+ ])
+ ->call('create')
+ ->assertNotified()
+ ->assertHasNoFormErrors()
+ ->assertRedirect();
+
+assertDatabaseHas(User::class, [
+ 'name' => 'Test',
+ 'email' => 'test@example.com',
+]);
+
+
+
+
+livewire(EditUser::class, ['record' => $user->id])
+ ->fillForm(['name' => 'Updated'])
+ ->call('save')
+ ->assertNotified()
+ ->assertHasNoFormErrors();
+
+assertDatabaseHas(User::class, [
+ 'id' => $user->id,
+ 'name' => 'Updated',
+]);
+
+
+
+
+livewire(CreateUser::class)
+ ->fillForm([
+ 'name' => null,
+ 'email' => 'invalid-email',
+ ])
+ ->call('create')
+ ->assertHasFormErrors([
+ 'name' => 'required',
+ 'email' => 'email',
+ ])
+ ->assertNotNotified();
+
+
+@endverbatim
+
+Use ___SINGLE_BACKTICK___->callAction(DeleteAction::class)___SINGLE_BACKTICK___ for page actions, or ___SINGLE_BACKTICK___->callAction(TestAction::make('name')->table($record))___SINGLE_BACKTICK___ for table actions:
+
+@verbatim
+
+use Filament\Actions\Testing\TestAction;
+
+livewire(ListUsers::class)
+ ->callAction(TestAction::make('promote')->table($user), [
+ 'role' => 'admin',
+ ])
+ ->assertNotified();
+
+
+@endverbatim
+
+### Correct Namespaces
+
+- Form fields (___SINGLE_BACKTICK___TextInput___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Select___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Forms\Components\___SINGLE_BACKTICK___
+- Infolist entries (___SINGLE_BACKTICK___TextEntry___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___IconEntry___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Infolists\Components\___SINGLE_BACKTICK___
+- Layout components (___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Fieldset___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Tabs___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Wizard___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Schemas\Components\___SINGLE_BACKTICK___
+- Schema utilities (___SINGLE_BACKTICK___Get___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Set___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Schemas\Components\Utilities\___SINGLE_BACKTICK___
+- Table columns (___SINGLE_BACKTICK___TextColumn___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___IconColumn___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Tables\Columns\___SINGLE_BACKTICK___
+- Table filters (___SINGLE_BACKTICK___SelectFilter___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Filter___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Tables\Filters\___SINGLE_BACKTICK___
+- Actions (___SINGLE_BACKTICK___DeleteAction___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___CreateAction___SINGLE_BACKTICK___, etc.): ___SINGLE_BACKTICK___Filament\Actions\___SINGLE_BACKTICK___. Never use ___SINGLE_BACKTICK___Filament\Tables\Actions\___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Filament\Forms\Actions\___SINGLE_BACKTICK___, or any other sub-namespace for actions.
+- Icons: ___SINGLE_BACKTICK___Filament\Support\Icons\Heroicon___SINGLE_BACKTICK___ enum (e.g., ___SINGLE_BACKTICK___Heroicon::PencilSquare___SINGLE_BACKTICK___)
+
+### Common Mistakes
+
+- **Never assume public file visibility.** File visibility is ___SINGLE_BACKTICK___private___SINGLE_BACKTICK___ by default. Always use ___SINGLE_BACKTICK___->visibility('public')___SINGLE_BACKTICK___ when public access is needed.
+- **Never assume full-width layout.** ___SINGLE_BACKTICK___Grid___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Section___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Fieldset___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ do not span all columns by default.
+- **Use ___SINGLE_BACKTICK___Select::make('author_id')->relationship('author', 'name')___SINGLE_BACKTICK___ for BelongsTo fields.** ___SINGLE_BACKTICK___BelongsToSelect___SINGLE_BACKTICK___ does not exist in v4.
+- **___SINGLE_BACKTICK___Repeater___SINGLE_BACKTICK___ uses ___SINGLE_BACKTICK___->schema()___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___->fields()___SINGLE_BACKTICK___.**
+- **Never add ___SINGLE_BACKTICK___->dehydrated(false)___SINGLE_BACKTICK___ to fields that need to be saved.** It strips the value from form state before ___SINGLE_BACKTICK___->action()___SINGLE_BACKTICK___ or the save handler runs. Only use it for helper/UI-only fields.
+- **Use correct property types when overriding ___SINGLE_BACKTICK___Page___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Resource___SINGLE_BACKTICK___, and ___SINGLE_BACKTICK___Widget___SINGLE_BACKTICK___ properties.** These properties have union types or changed modifiers that must be preserved:
+ - ___SINGLE_BACKTICK___$navigationIcon___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected static string | BackedEnum | null___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___?string___SINGLE_BACKTICK___)
+ - ___SINGLE_BACKTICK___$navigationGroup___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected static string | UnitEnum | null___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___?string___SINGLE_BACKTICK___)
+ - ___SINGLE_BACKTICK___$view___SINGLE_BACKTICK___: ___SINGLE_BACKTICK___protected string___SINGLE_BACKTICK___ (not ___SINGLE_BACKTICK___protected static string___SINGLE_BACKTICK___) on ___SINGLE_BACKTICK___Page___SINGLE_BACKTICK___ and ___SINGLE_BACKTICK___Widget___SINGLE_BACKTICK___ classes
diff --git a/storage/framework/views/dbd9de56fa899205b00c088775768f2d.php b/storage/framework/views/dbd9de56fa899205b00c088775768f2d.php
new file mode 100755
index 00000000..061d4cb2
--- /dev/null
+++ b/storage/framework/views/dbd9de56fa899205b00c088775768f2d.php
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/e3b9888097c7ff3c001c6cdebb490dc0.blade.php b/storage/framework/views/e3b9888097c7ff3c001c6cdebb490dc0.blade.php
new file mode 100755
index 00000000..ce218a08
--- /dev/null
+++ b/storage/framework/views/e3b9888097c7ff3c001c6cdebb490dc0.blade.php
@@ -0,0 +1,37 @@
+# Laravel Boost
+@if($assist->hasMcpEnabled())
+
+## Tools
+- Laravel Boost is an MCP server with tools designed specifically for this application. Prefer Boost tools over manual alternatives like shell commands or file reads.
+- Use ___SINGLE_BACKTICK___database-query___SINGLE_BACKTICK___ to run read-only queries against the database instead of writing raw SQL in tinker.
+- Use ___SINGLE_BACKTICK___database-schema___SINGLE_BACKTICK___ to inspect table structure before writing migrations or models.
+- Use ___SINGLE_BACKTICK___get-absolute-url___SINGLE_BACKTICK___ to resolve the correct scheme, domain, and port for project URLs. Always use this before sharing a URL with the user.
+@if (config('boost.browser_logs', false) !== false || config('boost.browser_logs_watcher', true) !== false)
+- Use ___SINGLE_BACKTICK___browser-logs___SINGLE_BACKTICK___ to read browser logs, errors, and exceptions. Only recent logs are useful, ignore old entries.
+@endif
+
+## Searching Documentation (IMPORTANT)
+- Always use ___SINGLE_BACKTICK___search-docs___SINGLE_BACKTICK___ before making code changes. Do not skip this step. It returns version-specific docs based on installed packages automatically.
+- Pass a ___SINGLE_BACKTICK___packages___SINGLE_BACKTICK___ array to scope results when you know which packages are relevant.
+- Use multiple broad, topic-based queries: ___SINGLE_BACKTICK___['rate limiting', 'routing rate limiting', 'routing']___SINGLE_BACKTICK___. Expect the most relevant results first.
+- Do not add package names to queries because package info is already shared. Use ___SINGLE_BACKTICK___test resource table___SINGLE_BACKTICK___, not ___SINGLE_BACKTICK___filament 4 test resource table___SINGLE_BACKTICK___.
+### Search Syntax
+1. Use words for auto-stemmed AND logic: ___SINGLE_BACKTICK___rate limit___SINGLE_BACKTICK___ matches both "rate" AND "limit".
+2. Use ___SINGLE_BACKTICK___"quoted phrases"___SINGLE_BACKTICK___ for exact position matching: ___SINGLE_BACKTICK___"infinite scroll"___SINGLE_BACKTICK___ requires adjacent words in order.
+3. Combine words and phrases for mixed queries: ___SINGLE_BACKTICK___middleware "rate limit"___SINGLE_BACKTICK___.
+4. Use multiple queries for OR logic: ___SINGLE_BACKTICK___queries=["authentication", "middleware"]___SINGLE_BACKTICK___.
+@endif
+
+## Artisan
+- Run Artisan commands directly via the command line (e.g., ___SINGLE_BACKTICK___{{ $assist->artisanCommand('route:list') }}___SINGLE_BACKTICK___). Use ___SINGLE_BACKTICK___{{ $assist->artisanCommand('list') }}___SINGLE_BACKTICK___ to discover available commands and ___SINGLE_BACKTICK___{{ $assist->artisanCommand('[command] --help') }}___SINGLE_BACKTICK___ to check parameters.
+- Inspect routes with ___SINGLE_BACKTICK___{{ $assist->artisanCommand('route:list') }}___SINGLE_BACKTICK___. Filter with: ___SINGLE_BACKTICK___--method=GET___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--name=users___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--path=api___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--except-vendor___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___--only-vendor___SINGLE_BACKTICK___.
+- Read configuration values using dot notation: ___SINGLE_BACKTICK___{{ $assist->artisanCommand('config:show app.name') }}___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___{{ $assist->artisanCommand('config:show database.default') }}___SINGLE_BACKTICK___. Or read config files directly from the ___SINGLE_BACKTICK___config/___SINGLE_BACKTICK___ directory.
+
+## Tinker
+- Execute PHP in app context for debugging and testing code. Do not create models without user approval, prefer tests with factories instead. Prefer existing Artisan commands over custom tinker code.
+@if($assist->hasMcpEnabled() && config('boost.tinker_tool_enabled', false))
+- Use the ___SINGLE_BACKTICK___tinker___SINGLE_BACKTICK___ MCP tool to execute PHP code instead of the CLI. It avoids shell escaping issues and runs the snippet in the Laravel application context.
+@else
+- Always use single quotes to prevent shell expansion: ___SINGLE_BACKTICK___{{ $assist->artisanCommand("tinker --execute 'Your::code();'") }}___SINGLE_BACKTICK___
+ - Double quotes for PHP strings inside: ___SINGLE_BACKTICK___{{ $assist->artisanCommand("tinker --execute 'User::where(\"active\", true)->count();'") }}___SINGLE_BACKTICK___
+@endif
diff --git a/storage/framework/views/e55f8fc118663131a1d9c997ae16233b.blade.php b/storage/framework/views/e55f8fc118663131a1d9c997ae16233b.blade.php
new file mode 100755
index 00000000..849b24c4
--- /dev/null
+++ b/storage/framework/views/e55f8fc118663131a1d9c997ae16233b.blade.php
@@ -0,0 +1,9 @@
+# Laravel Octane
+
+This application uses Laravel Octane, a long-running PHP server. The application bootstraps once and handles many requests within the same process.
+
+- Never store request-specific state in singletons or static properties, because it can leak across requests.
+- Use ___SINGLE_BACKTICK___config('octane.server')___SINGLE_BACKTICK___ to detect the active driver (___SINGLE_BACKTICK___swoole___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___roadrunner___SINGLE_BACKTICK___, or ___SINGLE_BACKTICK___frankenphp___SINGLE_BACKTICK___).
+- Prefer scoped bindings (___SINGLE_BACKTICK___$this->app->scoped()___SINGLE_BACKTICK___) over singletons for per-request services.
+
+When working on Octane-specific features (concurrency, shared tables, memory, driver configuration, testing), invoke ___SINGLE_BACKTICK___octane-development___SINGLE_BACKTICK___ for detailed rules.
diff --git a/storage/framework/views/e65a895df9952059eb04d62b095fd0c7.php b/storage/framework/views/e65a895df9952059eb04d62b095fd0c7.php
new file mode 100755
index 00000000..daa87a60
--- /dev/null
+++ b/storage/framework/views/e65a895df9952059eb04d62b095fd0c7.php
@@ -0,0 +1,43 @@
+
+
+ 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Companies')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('layouts::app'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Companies'))]); ?>
+
+
+
+
+
Companies
+
+
+
+
+
Name
Users
Warehouses
Licences
Status
+ addLoop($__currentLoopData); foreach($__currentLoopData as $company): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/eb01132efb33144e1e4a4be6ea14bb66.php b/storage/framework/views/eb01132efb33144e1e4a4be6ea14bb66.php
new file mode 100755
index 00000000..781a5625
--- /dev/null
+++ b/storage/framework/views/eb01132efb33144e1e4a4be6ea14bb66.php
@@ -0,0 +1,8 @@
+
+# Test Enforcement
+
+- Every change must be programmatically tested. Write a new test or update an existing test, then run the affected tests to make sure they pass.
+- Run the minimum number of tests needed to ensure code quality and speed. Use ___SINGLE_BACKTICK___artisanCommand('test --compact')); ?>___SINGLE_BACKTICK___ with a specific filename or filter.
+
\ No newline at end of file
diff --git a/storage/framework/views/ecc706e260068409f76f6a5c0ce87f02.php b/storage/framework/views/ecc706e260068409f76f6a5c0ce87f02.php
new file mode 100755
index 00000000..35cc28c1
--- /dev/null
+++ b/storage/framework/views/ecc706e260068409f76f6a5c0ce87f02.php
@@ -0,0 +1,108 @@
+
+
+
+
+
+ make('partials.settings-heading', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
+
+
+
+
+
+
+ 'components.settings.layout','data' => ['heading' => __('Profile'),'subheading' => __('Update your name and email address')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
+withName('settings.layout'); ?>
+shouldRender()): ?>
+startComponent($component->resolveView(), $component->data()); ?>
+
+except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
+
+withAttributes(['heading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Profile')),'subheading' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Update your name and email address'))]); ?>
+
+
+
+
+ showDeleteUser): ?>
+ mount($__name, $__params, $__key, $__componentSlots);
+
+echo $__html;
+
+unset($__html);
+unset($__key);
+$__key = $__keyOuter;
+unset($__keyOuter);
+unset($__name);
+unset($__params);
+unset($__componentSlots);
+unset($__split);
+?>
+
+ renderComponent(); ?>
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/efe75c7c0953490022ba5bd3c31dea8d.blade.php b/storage/framework/views/efe75c7c0953490022ba5bd3c31dea8d.blade.php
new file mode 100755
index 00000000..79f52070
--- /dev/null
+++ b/storage/framework/views/efe75c7c0953490022ba5bd3c31dea8d.blade.php
@@ -0,0 +1,15 @@
+# PHP
+
+@php
+/** @var \Laravel\Boost\Install\GuidelineAssist $assist */
+@endphp
+- Always use curly braces for control structures, even for single-line bodies.
+- Use PHP 8 constructor property promotion: ___SINGLE_BACKTICK___public function __construct(public GitHub $github) { }___SINGLE_BACKTICK___. Do not leave empty zero-parameter ___SINGLE_BACKTICK_____construct()___SINGLE_BACKTICK___ methods unless the constructor is private.
+- Use explicit return type declarations and type hints for all method parameters: ___SINGLE_BACKTICK___function isAccessible(User $user, ?string $path = null): bool___SINGLE_BACKTICK___
+@if(empty($assist->enums()) || !preg_match('/[A-Z]{3,8}/', $assist->enumContents()))
+- Use TitleCase for Enum keys: ___SINGLE_BACKTICK___FavoritePerson___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___BestLake___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___Monthly___SINGLE_BACKTICK___.
+@else
+- Follow existing application Enum naming conventions.
+@endif
+- Prefer PHPDoc blocks over inline comments. Only add inline comments for exceptionally complex logic.
+- Use array shape type definitions in PHPDoc blocks.
diff --git a/storage/framework/views/f677e0126eb302fcb55ee4e72ad0d7c5.php b/storage/framework/views/f677e0126eb302fcb55ee4e72ad0d7c5.php
new file mode 100755
index 00000000..7813f14a
--- /dev/null
+++ b/storage/framework/views/f677e0126eb302fcb55ee4e72ad0d7c5.php
@@ -0,0 +1,73 @@
+env;
+$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
+if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
+extract($__slots, EXTR_SKIP); unset($__slots);
+extract($__data, EXTR_SKIP);
+$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
+unset($__data, $__bound, $__keys);
+ob_start();
+?>
+
+
+pluck('sr-only'); ?>
+
+ null,
+ 'aside' => null,
+ 'trailing' => null,
+ 'srOnly' => null,
+];
+$badge ??= $attributes['badge'] ?? $__defaults['badge']; unset($attributes['badge']);
+$aside ??= $attributes['aside'] ?? $__defaults['aside']; unset($attributes['aside']);
+$trailing ??= $attributes['trailing'] ?? $__defaults['trailing']; unset($attributes['trailing']);
+$srOnly ??= $attributes['sr-only'] ?? $attributes['srOnly'] ?? $__defaults['srOnly']; unset($attributes['srOnly'], $attributes['sr-only']);
+unset($__defaults);
+?>
+
+add('inline-flex items-center')
+ ->add('text-sm font-medium')
+ ->add($srOnly ? 'sr-only' : '')
+ ->add('[:where(&)]:text-zinc-800 [:where(&)]:dark:text-white')
+ ->add('[&:has([data-flux-label-trailing])]:flex')
+ ;
+?>
+
+class($classes)); ?> data-flux-label>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/storage/framework/views/f93b3d98b125b311d0447ab2f5ada4eb.php b/storage/framework/views/f93b3d98b125b311d0447ab2f5ada4eb.php
new file mode 100755
index 00000000..b99b6e8e
--- /dev/null
+++ b/storage/framework/views/f93b3d98b125b311d0447ab2f5ada4eb.php
@@ -0,0 +1,10 @@
+# Laravel Octane
+
+This application uses Laravel Octane, a long-running PHP server. The application bootstraps once and handles many requests within the same process.
+
+- Never store request-specific state in singletons or static properties, because it can leak across requests.
+- Use ___SINGLE_BACKTICK___config('octane.server')___SINGLE_BACKTICK___ to detect the active driver (___SINGLE_BACKTICK___swoole___SINGLE_BACKTICK___, ___SINGLE_BACKTICK___roadrunner___SINGLE_BACKTICK___, or ___SINGLE_BACKTICK___frankenphp___SINGLE_BACKTICK___).
+- Prefer scoped bindings (___SINGLE_BACKTICK___$this->app->scoped()___SINGLE_BACKTICK___) over singletons for per-request services.
+
+When working on Octane-specific features (concurrency, shared tables, memory, driver configuration, testing), invoke ___SINGLE_BACKTICK___octane-development___SINGLE_BACKTICK___ for detailed rules.
+
\ No newline at end of file
diff --git a/storage/framework/views/f9dbb8248d1f2d09465a85c335cd1b5e.php b/storage/framework/views/f9dbb8248d1f2d09465a85c335cd1b5e.php
new file mode 100755
index 00000000..408c55d2
--- /dev/null
+++ b/storage/framework/views/f9dbb8248d1f2d09465a85c335cd1b5e.php
@@ -0,0 +1,48 @@
+
+
+all() as $__key => $__value) {
+ if (in_array($__key, $__propNames)) {
+ $$__key = $$__key ?? $__value;
+ } else {
+ $__newAttributes[$__key] = $__value;
+ }
+}
+
+$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes);
+
+unset($__propNames);
+unset($__newAttributes);
+
+foreach (array_filter(([
+ 'title',
+ 'description',
+]), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) {
+ $$__key = $$__key ?? $__value;
+}
+
+$__defined_vars = get_defined_vars();
+
+foreach ($attributes->all() as $__key => $__value) {
+ if (array_key_exists($__key, $__defined_vars)) unset($$__key);
+}
+
+unset($__defined_vars, $__key, $__value); ?>
+
+