public static function findByNameOrCreate(string $name, TagType $type) : Tag { $existing = Tag::whereTranslation('name', $name, content_locale())->first(); if ($existing) { return $existing; } $tag = new static(['type' => $type, 'draft' => false, 'online' => true]); foreach (config('app.locales') as $locale) { $tag->translateOrNew($locale)->name = $name; } $tag->save(); return $tag; }