User::factory(), 'reward_id' => Reward::factory(), 'code' => Str::upper(Str::random(10)), 'points_spent' => 100, 'status' => RedemptionStatus::WAITING_PICKUP, 'expires_at' => $this->faker->dateTimeBetween('+1 week', '+1 month'), ]; } public function verified(User $verifier): Factory { return $this->state(fn () => [ 'status' => RedemptionStatus::PICKED_UP, 'verified_at' => now(), 'verified_by' => $verifier->id, ]); } public function expired(): Factory { return $this->state(fn () => [ 'status' => RedemptionStatus::EXPIRED, ]); } }