label('Lanjutkan ke Pembayaran') ->icon(Heroicon::OutlinedBanknotes) ->color('success') ->requiresConfirmation() ->modalHeading(fn () => CheerfulNotification::getMessage('Lanjut ke Pembayaran? πŸ’ΈπŸ’³', 'Lanjutkan ke Pembayaran')) ->modalDescription(fn () => CheerfulNotification::getMessage('Siap buat lanjut ke tahap pembayaran? Pastikan semua laporan sudah diverifikasi dulu ya! βœ…πŸ˜Š', 'Apakah Anda yakin ingin melanjutkan ke tahap pembayaran? Pastikan seluruh laporan telah diverifikasi.')) ->action(function (Cooperation $record): void { $record->update([ 'status' => CooperationStatus::PAYMENT, 'payment_date' => now()->toDateString(), ]); CheerfulNotification::success( CheerfulNotification::getMessage('Tahap Pembayaran Dimulai! πŸ’Έβœ¨', 'Tahap Pembayaran Aktif'), CheerfulNotification::getMessage('Kerja sama telah dipindahkan ke tahap pembayaran. Silakan proses pembayarannya ya! 😊', 'Status kerja sama telah dialihkan ke tahap pembayaran.') )->send(); }) ->visible(function (Cooperation $record): bool { $user = auth()->user(); if (! $user || $user->hasRole(RoleEnum::PERUSAHAAN->value) || $record->status !== CooperationStatus::VERIFICATION) { return false; } // Check if all reports are verified (either Accepted or Rejected, not Pending) $reports = $record->reports; if ($reports->isEmpty()) { return true; } return $reports->every(fn ($report) => $report->status !== ApprovalStatus::PENDING); }); } }