*/ class CertificateFactory extends Factory { /** * @return array */ public function definition(): array { return [ 'user_id' => User::factory(), 'category_id' => null, 'title' => fake()->sentence(3), 'issuer' => fake()->company(), 'certificate_number' => fake()->bothify('CERT-####-????'), 'issued_at' => fake()->dateTimeBetween('-2 years', '-1 month'), 'file_path' => null, 'expires_at' => fake()->dateTimeBetween('+2 months', '+2 years'), 'notes' => null, ]; } public function expired(): static { return $this->state(fn (array $attributes) => [ 'expires_at' => fake()->dateTimeBetween('-2 years', '-1 day'), ]); } public function expiringSoon(): static { return $this->state(fn (array $attributes) => [ 'expires_at' => today()->addWeeks(2), ]); } }