*/ class WalletTransactionFactory extends Factory { public function definition(): array { $amount = fake()->numberBetween(10000, 1000000); return [ 'type' => WalletTransactionTypeEnum::Deposit, 'reason' => WalletTransactionReasonEnum::TopUp, 'amount' => $amount, 'balance_after' => $amount, 'description' => null, 'wallet_id' => Wallet::factory(), 'invoice_id' => null, 'payment_id' => null, 'withdraw_request_id' => null, ]; } public function withdrawal(WalletTransactionReasonEnum $reason = WalletTransactionReasonEnum::InvoicePayment): static { return $this->state(fn (array $attributes) => [ 'type' => WalletTransactionTypeEnum::Withdrawal, 'reason' => $reason, ]); } }