label('Tolak') ->icon(Heroicon::OutlinedXMark) ->color('danger') ->action(function (Cooperation $record): void { $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function ($query) { $query->whereHas('company', function ($subQuery) { $subQuery->where('user_id', auth()->id()); }); }) ->first(); if ($cooperationMedia) { $cooperationMedia->update(['status' => ApprovalStatus::REJECTED]); CheerfulNotification::info( CheerfulNotification::getMessage('Berhasil Ditolak 🙏', 'Tawaran Kerja Sama Ditolak'), CheerfulNotification::getMessage('Terima kasih atas konfirmasinya. Pesan penolakan telah diteruskan ke Admin. 😊', 'Penolakan penawaran kerja sama telah berhasil dikirimkan ke pihak Admin.') )->send(); // Notify Admins User::superAdmin() ->get() ->each(function ($admin) use ($record, $cooperationMedia): void { $admin->notify(new BroadcastNotification([ 'title' => CheerfulNotification::getMessage('Yah, Tawaran Ditolak 😔🤝', 'Tawaran Kerja Sama Ditolak Media'), 'body' => CheerfulNotification::getMessage("Media {$cooperationMedia->partnerMedia->name} baru saja menolak penawaran kerja sama \"{$record->title}\". Mungkin di lain waktu ya! 🙏", "Pihak media {$cooperationMedia->partnerMedia->name} telah menolak penawaran kerja sama \"{$record->title}\"."), ])); }); } }) ->visible(function (Cooperation $record): bool { $user = auth()->user(); if (! $user || ! $user->hasRole(RoleEnum::PERUSAHAAN->value)) { return false; } $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function ($query) { $query->whereHas('company', function ($subQuery) { $subQuery->where('user_id', auth()->id()); }); }) ->first(); return $cooperationMedia && $cooperationMedia->status === ApprovalStatus::PENDING; }); } }