label('Terima') ->icon(Heroicon::OutlinedCheck) ->color('success') ->action(function (\App\Models\Cooperation $record): void { $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function (\Illuminate\Database\Eloquent\Builder $query): void { $query->whereHas('company', function (\Illuminate\Database\Eloquent\Builder $subQuery): void { $subQuery->where('user_id', auth()->id()); }); }) ->first(); if ($cooperationMedia) { $cooperationMedia->update(['status' => ApprovalStatus::ACCEPTED]); Notification::make() ->title('Kerja sama diterima') ->success() ->send(); } }) ->visible(function (\App\Models\Cooperation $record): bool { if (! auth()->user()->hasRole('Perusahaan')) { return false; } $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function (\Illuminate\Database\Eloquent\Builder $query): void { $query->whereHas('company', function (\Illuminate\Database\Eloquent\Builder $subQuery): void { $subQuery->where('user_id', auth()->id()); }); }) ->first(); return $cooperationMedia && $cooperationMedia->status === ApprovalStatus::PENDING; }); } }