label('Terima') ->icon(Heroicon::OutlinedCheck) ->color('success') ->action(function (Cooperation $record): void { $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function (Builder $query): void { $query->whereHas('company', function (Builder $subQuery): void { $subQuery->where('user_id', auth()->id()); }); }) ->first(); if ($cooperationMedia) { $cooperationMedia->update(['status' => ApprovalStatus::ACCEPTED]); CheerfulNotification::success( CheerfulNotification::getMessage('Berhasil Diterima! ✅✨', 'Tawaran Diterima'), CheerfulNotification::getMessage('Mantap! Anda telah menerima penawaran kerja sama ini. Silakan lanjut ke tahap pengajuan proposal ya! 💪', 'Anda telah menyetujui penawaran kerja sama ini. Silakan lanjutkan ke tahap pengiriman proposal.') )->send(); // Notify Admins User::superAdmin() ->get() ->each(function ($admin) use ($record, $cooperationMedia): void { $admin->notify(new BroadcastNotification([ 'title' => CheerfulNotification::getMessage('Kabar Baik! Tawaran Diterima ✨🤝', 'Tawaran Kerja Sama Disetujui Media'), 'body' => CheerfulNotification::getMessage("Media {$cooperationMedia->partnerMedia->name} baru saja menerima penawaran kerja sama \"{$record->title}\". Siap-siap cek proposal mereka ya! 😊", "Pihak media {$cooperationMedia->partnerMedia->name} telah menyetujui penawaran kerja sama \"{$record->title}\"."), 'action' => [ Action::make('view') ->label('Lihat') ->url(CooperationResource::getUrl('view', ['record' => $record->id])), ], ])); }); } }) ->visible(function (Cooperation $record): bool { $user = auth()->user(); if (! $user || ! $user->hasRole(RoleEnum::PERUSAHAAN->value)) { return false; } $cooperationMedia = $record->cooperationMedia() ->whereHas('partnerMedia', function (Builder $query): void { $query->whereHas('company', function (Builder $subQuery): void { $subQuery->where('user_id', auth()->id()); }); }) ->first(); return $cooperationMedia && $cooperationMedia->status === ApprovalStatus::PENDING; }); } }