schema([ 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([ // ]) ->actions([ Tables\Actions\ViewAction::make(), Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make(), Tables\Actions\Action::make('toggleStatus') ->label('Toggle Status') ->icon('heroicon-o-power') ->action(function (Category $record) { $record->update(['is_active' => !$record->is_active]); }), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListCategories::route('/'), 'create' => Pages\CreateCategory::route('/create'), 'edit' => Pages\EditCategory::route('/{record}/edit'), ]; } }