vernsg/nusa-filament
Nusa Filament brings Indonesian regional data into Filament forms—provinces, cities/regencies, districts, and villages—with cascading selects, searchable options, and simple configuration for Laravel admin panels.
composer require for the package, then run the migrations/seeders it ships for administrative regions. Confirm the region tables are populated before touching any form — an empty NusaOptions cache makes every dropdown look broken.php artisan vendor:publish --tag=...) and check the region table names and model bindings first. Most integration problems are config key mismatches, not code.^3.0, Laravel 10/11/12, PHP 8.1+. Anything older is unsupported as of v1.0.0 and you should not attempt a partial upgrade.->live() and use ->afterStateUpdated() to null out children. v1.0.0 fixes the postal code not resetting when province/regency/district changes, so you can rely on the built-in reset instead of hand-rolling ->afterStateUpdated(fn (Set $set) => $set('postal_code', null)) on every level.NusaOptions. Use the package's option provider rather than querying region models directly. This is what benefits from the new in-memory static cache — calling it repeatedly inside a table column or infolist no longer triggers an N+1. If you previously memoised region lists yourself, remove that layer; two caches with different lifetimes is a debugging trap.RefreshDatabase with a seeded (or fixture) region subset. Static caching in NusaOptions can leak between tests in the same process; if you assert on option counts, refresh the cache or isolate the affected tests.NusaOptions lives for the request/process. After seeding or editing region data in a long-running process (queue worker, Octane, artisan tinker), stale options will persist. Restart workers or call the cache reset if one is exposed.afterStateUpdated hooks.NusaOptions cache state → field dependency wiring. In practice the cache and the ->live() wiring account for most reports.How can I help you explore Laravel packages today?