*/ class WithdrawRequestFactory extends Factory { public function definition(): array { return [ 'amount' => fake()->numberBetween(100000, 2000000), 'status' => WithdrawRequestStatusEnum::Pending, 'admin_note' => null, 'reviewed_at' => null, 'reviewed_by' => null, 'user_id' => User::factory(), 'bank_card_id' => fn (array $attributes) => BankCard::factory()->create(['user_id' => $attributes['user_id']])->id, ]; } public function approved(): static { return $this->state(fn (array $attributes) => [ 'status' => WithdrawRequestStatusEnum::Approved, 'reviewed_at' => now(), 'reviewed_by' => User::factory(), ]); } public function rejected(): static { return $this->state(fn (array $attributes) => [ 'status' => WithdrawRequestStatusEnum::Rejected, 'admin_note' => fake()->sentence(), 'reviewed_at' => now(), 'reviewed_by' => User::factory(), ]); } }