filtersForm->fill([ 'plant' => Plant::first()?->id // Default to first plant ]); } public function filtersForm(Form $form): Form { return $form ->statePath('filters') ->schema([ Select::make('plant') ->options(Plant::pluck('name', 'id')) ->label('Select Plant') ->reactive() ->afterStateUpdated(function ($state) { session(['selected_plant' => $state]); $this->triggerChartUpdate(); }), // Line Filter Select::make('line') ->options(function ($get) { $plantId = $get('plant'); return $plantId ? Plant::find($plantId)->getLineNames()->pluck('name', 'id') : []; }) ->label('Select Line') ->reactive() ->afterStateUpdated(function ($state) { session(['selected_line' => $state]); $this->triggerChartUpdate(); }), ]) ->columns(2); } public function triggerChartUpdate(): void { if (session()->has('selected_plant') && session()->has('selected_line')) { $this->dispatch('filtersUpdated'); } } public static function getNavigationLabel(): string { return 'Hourly Production Count'; } public static function canAccess(): bool { return Auth::check() && Auth::user()->can('view production dashboard'); } }