*/ class PaymentFactory extends Factory { public function definition(): array { return [ 'track_id' => fake()->unique()->numerify('##########'), 'amount' => fake()->numberBetween(100000, 2000000), 'status' => PaymentStatusEnum::Pending, 'purpose' => PaymentPurposeEnum::Invoice, 'ref_number' => null, 'verified_at' => null, 'invoice_id' => null, 'payer_id' => User::factory(), ]; } public function paid(): static { return $this->state(fn (array $attributes) => [ 'status' => PaymentStatusEnum::Paid, 'ref_number' => fake()->numerify('############'), 'verified_at' => now(), ]); } public function walletTopUp(): static { return $this->state(fn (array $attributes) => [ 'purpose' => PaymentPurposeEnum::WalletTopUp, ]); } }