*/ class ClientFactory extends Factory { protected $model = Client::class; /** * @return array */ public function definition(): array { $name = fake()->unique()->company(); return [ 'name' => $name, 'slug' => Str::slug($name), 'sector' => $this->eachLocale(fn () => fake()->randomElement([ 'ONG', 'Educación', 'Cultura', 'Salud', 'Medio ambiente', ])), 'logo' => null, 'url' => fake()->optional(0.7)->url(), 'is_public' => true, 'position' => 0, ]; } public function private(): static { return $this->state(fn () => ['is_public' => false]); } /** @return array */ protected function eachLocale(callable $value): array { return collect(array_keys(config('locales.supported'))) ->mapWithKeys(fn (string $l) => [$l => $value($l)]) ->all(); } }