components([ DatePicker::make('bonus_date') ->required() ->default(now()), Select::make('bonus_type') ->options(BonusType::class) ->required() ->native(false), TextInput::make('amount') ->required() ->numeric() ->prefix('TMT') ->minValue(0) ->step(0.01), Textarea::make('reason') ->rows(3) ->columnSpanFull(), ]); } public function table(Table $table): Table { return $table ->recordTitleAttribute('bonus_date') ->columns([ TextColumn::make('bonus_date') ->date() ->sortable(), TextColumn::make('bonus_type') ->label('Type') ->badge() ->color(fn (BonusType $state): string => $state->color()) ->formatStateUsing(fn (BonusType $state): string => $state->label()) ->sortable(), TextColumn::make('amount') ->money('TMT') ->sortable(), TextColumn::make('reason') ->limit(40) ->toggleable(), ]) ->filters([ SelectFilter::make('bonus_type') ->label('Type') ->options(BonusType::class), TrashedFilter::make(), ]) ->headerActions([ CreateAction::make(), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ForceDeleteBulkAction::make(), RestoreBulkAction::make(), ]), ]); } }