- What Laravel versions does this package support?
- The package is compatible with Laravel 11, 12, and 13. Ensure your project uses one of these versions before installation. PHP 8.2+ is also required for full functionality.
- Can I use this package without Livewire or Flux?
- Yes, the Livewire/Flux UI is optional. You can build a custom frontend using Blade templates or replace it entirely with React/Vue if needed. The core ticketing logic remains functional without these dependencies.
- How do I integrate this with my existing media library (e.g., Intervention Image)?
- The package relies on Spatie’s MediaLibrary for attachments. If you’re using another library, you’ll need to either disable attachments or manually extend the package’s media handling logic to work with your existing setup.
- Does this package support multi-tenancy?
- The package does not natively support multi-tenancy, but you can implement it by extending the core models (e.g., `SupportTicket`) and adding tenant-specific logic. Documentation for this scenario is limited, so testing is recommended.
- How do I customize ticket statuses or priorities?
- You can extend the default statuses (Open, Pending, etc.) or priorities (Low, High, etc.) by publishing the config (`php artisan vendor:publish --tag=customer-support-config`) and modifying the `statuses` and `priorities` arrays. For deeper changes, you may need to fork the package.
- What happens if I need to scale beyond 100K tickets/month?
- The package is optimized for mid-sized workloads. For high-volume environments, you’ll need to implement database optimizations (e.g., indexing), caching (e.g., Redis for ticket queries), or queue tuning. These adjustments are not documented but can be inferred from Laravel best practices.
- How do I restrict access to the support dashboard?
- Use Laravel’s gate system to define permissions. The README example shows how to define `manage-support-tickets` in `AppServiceProvider`. You can then apply this gate to routes or UI components to control access.
- Can I use this package without Laravel Nova?
- Yes, Nova integration is optional. The package auto-registers Nova resources if Nova is installed, but you can ignore this feature and build a custom admin interface using Livewire, Blade, or another frontend framework.
- Are there any known conflicts with other Laravel packages?
- Potential conflicts include media library dependencies (e.g., Spatie vs. Intervention Image) and Livewire/Flux if not already in your stack. Test the package in a staging environment to identify and resolve conflicts early.
- How do I extend the package’s event system for custom workflows?
- The package emits events like `TicketCreated` and `TicketStatusChanged`. You can listen to these events in your `EventServiceProvider` or via Laravel’s event system. For custom events, extend the package’s event classes or create new ones following Laravel’s event patterns.