columns([ TextColumn::make('title') ->label('Judul') ->searchable() ->sortable() ->wrap() ->limit(50), TextColumn::make('author.name') ->label('Penulis') ->searchable() ->sortable() ->placeholder('Tidak ada'), TextColumn::make('categories.name') ->label('Kategori') ->listWithLineBreaks() ->limitList(3) ->expandableLimitedList() ->badge() ->placeholder('Tidak ada kategori'), TextColumn::make('tags.name') ->label('Tag') ->listWithLineBreaks() ->limitList(3) ->expandableLimitedList() ->badge() ->placeholder('Tidak ada tag'), TextColumn::make('link') ->label('Tautan') ->searchable() ->sortable() ->copyable() ->copyMessage('Tautan berhasil disalin') ->placeholder('Tidak ada') ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('status') ->label('Status') ->searchable() ->sortable() ->badge() ->formatStateUsing(fn (NewsStatus $state): string => $state->getLabel()) ->color(fn (NewsStatus $state): string => $state->getColor()), TextColumn::make('views') ->label('Dilihat') ->sortable() ->alignCenter(), TextColumn::make('published_at') ->label('Tgl Publish') ->searchable() ->sortable() ->date('l, d F Y H:i') ->toggleable(isToggledHiddenByDefault: true), ...TimestampColumns::make(), ]) ->filters([ TrashedFilter::make()->native(false), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ForceDeleteAction::make(), RestoreAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ ...DefaultBulkActions::make('Berita'), ]), ]) ->emptyStateIcon(Heroicon::Newspaper) ->emptyStateDescription('Setelah Anda membuat data pertama, maka akan muncul disini.') ->defaultSort('created_at', 'desc') ->deferFilters(false); } }