label('Lanjutkan ke Pembayaran') ->icon(Heroicon::OutlinedBanknotes) ->color('success') ->requiresConfirmation() ->modalHeading(fn () => CheerfulNotification::getByKey('cooperation.proceed_to_payment_title')) ->modalDescription(fn () => CheerfulNotification::getByKey('cooperation.proceed_to_payment_desc')) ->action(function (Cooperation $record): void { $record->update([ 'status' => CooperationStatus::PAYMENT, 'payment_date' => now()->toDateString(), ]); CheerfulNotification::success( CheerfulNotification::getByKey('cooperation.payment_stage_active'), CheerfulNotification::getByKey('cooperation.payment_stage_changed_desc') )->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); }); } }