jeffersongoncalves/servicedeskkitv5
A Laravel package for building service desk and help desk features: manage support tickets, requests, and customer conversations with ready-made models, migrations, and workflows that integrate smoothly into your existing Laravel application.
This is a Filament v5 service-desk package. Start by confirming you're on Filament ^5.9 and Laravel ^11/^12 with PHP 8.3+ (CI now enforces PHP 8.4 for static analysis, so treat 8.4 as the supported target).
composer require jeffersongoncalves/servicedeskkitv5php artisan vendor:publish --tag=servicedeskkitv5-config and --tag=servicedeskkitv5-migrationsphp artisan migrate->plugin(ServiceDeskKitPlugin::make()))php artisan make:filament-user (or the package's user package seeder, see below)Where to look first:
config/servicedeskkitv5.php — panel slugs, navigation group, role mapping between your User and Admin models (this is where the 5.9.0 user/admin split is wired).ServiceDeskKitPlugin — getId(), register() and boot() show which Resources/Pages are auto-discovered. This is the fastest way to see what you're actually getting.composer.json of the package — check whether filament-user/filament-admin helper packages are listed as required or optional; 5.9.0 added them as the canonical source for models/resources.First use case: Log in as an admin, create a ticket, assign it to a staff user, and verify the notification flow. That single path exercises the Resources, the policy layer, and the user/admin model split.
Delegate identity to the user/admin packages. Since 5.9.0, models, resources, and login live in separate packages. Your app's User and Admin models should extend (or use the traits from) those packages rather than living inside app/Models. If you previously subclassed package-provided models directly, migrate to the new trait-based composition so future upgrades don't collide with your namespace.
Panel wiring. Register the plugin per panel and let it own its Resource discovery:
public function panel(Panel $panel): Panel
{
return $panel
->id('servicedesk')
->path('servicedesk')
->plugin(ServiceDeskKitPlugin::make())
->authGuard('admin'); // matches the admin package guard
}
Multi-tenancy / role separation. Use Filament's ->tenant() with the admin package's role model rather than rolling your own. The service-desk Resources respect the current panel's auth guard, so staff and requester UIs can be split into two panels sharing the same plugin.
Testing workflow that matches CI. The 5.9.0 CI runs PHPStan on PHP 8.4 and standardised Pest/PHPUnit workflows. Mirror that locally:
vendor/bin/phpstan analyse --level=5 against your app code (the package ships no baseline; your own baseline catches integration regressions).composer update --dry-run after bumping the package — the dependabot group update in 5.9.0 bumped three transitive deps, and Filament minor bumps occasionally change Resource signatures.Customising Resources. Prefer extending the package Resources with ->form(fn (Form $form) => $form->schema([...])) overrides in a sub-class, and register your subclass via the plugin's ->resources([...]) where available. Avoid editing vendor files — the standardized CI means the package is now actively tracking upstream changes and will overwrite local patches on update.
5.9.0 is a soft breaking change for existing installs. If you previously relied on the package's bundled User model or its login page, those have moved to the user/admin packages. Symptoms after upgrading: "class not found" for models under the package namespace, duplicated Filament login routes, or missing relationships on Ticket::user(). Fix by repointing your models and clearing php artisan filament:optimize-clear plus php artisan config:clear.
Filament 5.9.0 alignment. Because the package pins to ^5.9.0 of Filament, make sure your other Filament plugins are also on 5.9-compatible releases. Filament's minor bumps have shipped schema/table signature changes; a mixed 5.8/5.9 plugin set is the most common cause of "method does not exist" errors in Resources.
PHP 8.4 in CI, but runtime may be 8.3. CI now statics against 8.4, so the package may adopt 8.4-only syntax in future minors. Pin your production PHP image accordingly and watch the composer php constraint — it will tighten before the changelog says so.
Debugging: The majority of issues after this release are auth-guard related. Use php artisan about to confirm the guard, then check config/auth.php matches the admin package's guard name. Filament's ->authGuard() and the package's config must agree; a mismatch silently yields an empty Resource list rather than an error.
Extension points worth knowing: plugin register() for adding Resources/Pages, config navigation block for grouping, and the policy classes shipped by the user/admin packages for permission tweaks. Override via Gate::policy() in a service provider rather than editing vendor policies.
Dependabot noise. Several 5.9.0 PRs are CI churn (dependabot config, workflow standardisation). Don't treat patch bumps within 5.9.x as feature releases — diff the changelog for code changes before planning an upgrade window.
How can I help you explore Laravel packages today?