*/ class NotificationLogFactory extends Factory { public function definition(): array { return [ 'user_id' => User::factory(), 'channel' => fake()->randomElement(['email', 'push', 'whatsapp', 'sms']), 'trigger_type' => fake()->randomElement(['price_threshold', 'score_change', 'scheduled_morning', 'scheduled_evening']), 'fuel_type' => fake()->randomElement(array_column(FuelType::cases(), 'value')), 'price' => fake()->optional()->randomFloat(3, 100, 180), 'sent' => true, 'missed_reason' => null, 'created_at' => now(), ]; } public function missed(string $reason = 'daily_limit'): static { return $this->state(fn () => [ 'sent' => false, 'missed_reason' => $reason, ]); } }