components([ TextInput::make('name') ->required() ->live(1) ->afterStateUpdated(fn (Set $set, ?string $state) => $set('slug', Str::slug($state))), TextInput::make('slug')->required(), Select::make('is_active') ->options([ 0 => 'Inactive', 1 => 'Active', ]) ->columnSpanFull() ->required() ->default(1), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('name'), TextColumn::make('slug'), TextColumn::make('blogs_count') ->label('Blogs') ->getStateUsing(function (Category $record): int { return $record->blogs()->count(); }), IconColumn::make('is_active')->label('Active')->boolean(), ]) ->filters([ // ]) ->recordActions([ ViewAction::make(), EditAction::make(), DeleteAction::make(), Action::make('toggleStatus') ->label('Toggle Status') ->icon('heroicon-o-power') ->action(function (Category $record) { $record->update(['is_active' => ! $record->is_active]); }), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => ListCategories::route('/'), 'create' => CreateCategory::route('/create'), 'edit' => EditCategory::route('/{record}/edit'), ]; } }