columns([ TextColumn::make('mahasiswa.nama') ->label('Nama Mahasiswa') ->searchable() ->sortable(), TextColumn::make('status') ->label('Status Berkas') ->badge() ->color(fn (string $state): string => match ($state) { 'valid' => 'success', 'tidak_valid' => 'danger', 'belum_validasi' => 'warning', default => 'gray', }), TextColumn::make('hasil') ->label('Hasil Seleksi') ->badge() ->color(fn (string $state): string => match ($state) { 'Layak' => 'success', 'Dipertimbangkan' => 'warning', 'Tidak Layak' => 'danger', default => 'gray', }), ViewColumn::make('keterangan') ->label('Keterangan') ->view('filament.tables.columns.keterangan-pengumuman'), ]) ->defaultSort('total_nilai', 'desc') ->modifyQueryUsing(function (Builder $query): Builder { $user = auth()->user(); if ($user->roles[0]->name == 'Mahasiswa') { return $query->where('mahasiswa_id', $user->id); } return $query; }); } public static function getPages(): array { return [ 'index' => Pages\ListPengumuman::route('/'), ]; } }