*/ class SubscriptionFactory extends Factory { /** * @return array */ public function definition(): array { return [ 'user_id' => User::factory(), 'plan' => SubscriptionPlan::Free, 'status' => SubscriptionStatus::Active, ]; } public function starter(): static { return $this->state(fn (array $attributes) => [ 'plan' => SubscriptionPlan::Starter, 'moneybird_contact_id' => 'contact-'.fake()->uuid(), 'moneybird_recurring_invoice_id' => 'recurring-'.fake()->uuid(), 'current_period_starts_at' => today(), 'current_period_ends_at' => today()->addYear(), ]); } public function unlimited(): static { return $this->state(fn (array $attributes) => [ 'plan' => SubscriptionPlan::Unlimited, 'moneybird_contact_id' => 'contact-'.fake()->uuid(), 'moneybird_recurring_invoice_id' => 'recurring-'.fake()->uuid(), 'current_period_starts_at' => today(), 'current_period_ends_at' => today()->addYear(), ]); } public function pastDue(): static { return $this->state(fn (array $attributes) => [ 'status' => SubscriptionStatus::PastDue, 'grace_ends_at' => today()->subDay(), ]); } }