Searchable provides the global command-palette style search registry used by Laravel Enso.
The package exposes a single search endpoint, a facade-backed registry for searchable models, and a finder service that resolves results according to configured attributes, scopes, permissions, and optional Scout providers.
It is intended for Enso applications that need cross-module quick search with permission-aware routes and grouped results.
Install the package:
composer require laravel-enso/searchableRun the package migrations:
php artisan migrateOptional publishes:
php artisan vendor:publish --tag=searchable-config
php artisan vendor:publish --tag=searchable-factories- Global
api/core/searchable/indexendpoint. - Facade-backed searchable model registry.
- Finder service that supports local query matching or Scout search providers.
- Permission-filtered route actions based on the authenticated user's role.
- Support for route params, custom labels, scopes, permission groups, and nested relation attributes.
Register searchable models from any package by extending the package search service provider:
public $register = [
Product::class => [
'group' => 'Product',
'attributes' => ['name', 'internal_code', 'part_number'],
'label' => 'internal_code',
'permissionGroup' => 'products',
],
];The finder returns grouped results with resolved route params and only the route actions the current user is allowed to execute.
GET api/core/searchable/index
LaravelEnso\\Searchable\\Services\\SearchLaravelEnso\\Searchable\\Services\\Finder
Behavior:
- stores registered searchable model definitions
- executes Scout search when
searchProvideris configured - otherwise executes filter-based database search
- filters available actions by role permissions
Required Enso packages:
are welcome. Pull requests are great, but issues are good too.
Thank you to all the people who already contributed to Enso!