*/ class TestimonialFactory extends Factory { protected $model = Testimonial::class; /** * @return array */ public function definition(): array { return [ 'quote' => $this->eachLocale(fn () => fake()->sentence(20)), 'original_locale' => (string) config('locales.default'), 'author_name' => fake()->name(), 'author_role' => $this->eachLocale(fn () => fake()->jobTitle()), 'avatar' => null, 'is_public' => true, 'position' => 0, 'given_at' => fake()->optional(0.7)->dateTimeBetween('-2 years'), ]; } 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(); } }