environment('production')) { $this->error('Este comando nao pode ser executado em producao.'); return Command::FAILURE; } $paymentId = $this->argument('payment_id'); $payment = $paymentId ? Payment::query()->find($paymentId) : Payment::query() ->whereIn('status', [PaymentStatusEnum::PENDING, PaymentStatusEnum::PROCESSING, PaymentStatusEnum::AUTHORIZED]) ->latest('id') ->first(); if (! $payment) { $this->error($paymentId ? "Payment #{$paymentId} nao encontrado." : 'Nenhum payment pendente encontrado.'); return Command::FAILURE; } if ($payment->status === PaymentStatusEnum::PAID) { $this->warn("Payment #{$payment->id} ja esta pago."); return Command::SUCCESS; } $this->pagarmePaymentService->applyGatewayResponseToPayment($payment, [ 'id' => 'or_local_test', 'charges' => [[ 'id' => 'ch_local_test', 'status' => 'paid', 'paid_at' => now()->toISOString(), 'last_transaction' => [ 'id' => 'tran_local_test', 'status' => 'captured', 'cost' => 0, ], ]], ]); $this->paymentService->syncPaymentTargets($payment->fresh()); $status = $payment->fresh()->status->value; $this->info("Payment #{$payment->id} (schedule #{$payment->schedule_id}) atualizado para status: {$status}"); return Command::SUCCESS; } }