*/ class SubscriptionInvoiceFactory extends Factory { /** * @return array */ public function definition(): array { return [ 'subscription_id' => Subscription::factory(), 'moneybird_invoice_id' => (string) fake()->unique()->randomNumber(9), 'plan' => SubscriptionPlan::Starter, 'amount_cents' => SubscriptionPlan::Starter->priceInCents(), 'state' => 'open', 'invoice_date' => today(), 'due_date' => today()->addDays(14), 'payment_url' => 'https://moneybird.dev/pay/'.fake()->uuid(), ]; } public function paid(): static { return $this->state(fn (array $attributes) => [ 'state' => 'paid', 'paid_at' => now(), ]); } }