query( Ticket::query() ->where('status', '!=', 'closed') ->with('user') ->withMax('messages', 'created_at') ->orderByDesc('messages_max_created_at') ->limit(5) ) ->columns([ Tables\Columns\TextColumn::make('subject') ->label('Subject'), Tables\Columns\TextColumn::make('status') ->label('Status') ->badge() ->color(fn (Ticket $record) => match ($record->status) { 'open' => 'success', 'closed' => 'danger', 'replied' => 'warning', }) ->formatStateUsing(fn (string $state) => ucfirst($state)), Tables\Columns\TextColumn::make('user.name') ->label('User'), Tables\Columns\TextColumn::make('created_at') ->label('Created At'), ]) ->recordUrl(fn (Ticket $record) => TicketResource::getUrl('edit', ['record' => $record])) ->paginated(false); } public static function canView(): bool { return auth()->user()->hasPermission('admin.widgets.support'); } }