*/ class PaymentFactory extends Factory { protected $model = Payment::class; /** * Define the model's default state. * * @return array */ public function definition(): array { return [ 'booking_id' => Booking::factory(), 'gateway' => PaymentMethod::KbzMiniApp, 'status' => PaymentStatus::Pending, 'amount' => $this->faker->randomFloat(2, 5000, 50000), 'currency' => 'MMK', 'gateway_transaction_id' => Str::uuid()->toString(), 'gateway_payload' => null, 'initiated_at' => now(), 'completed_at' => null, ]; } public function completed(): static { return $this->state(fn (array $attributes): array => [ 'status' => PaymentStatus::Completed, 'completed_at' => now(), ]); } public function failed(): static { return $this->state(fn (array $attributes): array => [ 'status' => PaymentStatus::Failed, 'completed_at' => now(), ]); } }