isProduction()); TranslatableTabs::configureUsing(function (TranslatableTabs $component) { $component ->localesLabels(baseLocales()) ->locales(array_keys(baseLocales())); }); /** * Order by translation for spatie/laravel-translatable * * @param string $field * @param string $order * @param string $locale * @return \Illuminate\Database\Eloquent\Builder */ Builder::macro('orderByTranslation', function (string $field, string $order = 'asc', ?string $locale = null) { /** @var \Illuminate\Database\Eloquent\Builder */ $builder = $this; // @phpstan-ignore-line if ( in_array(HasTranslations::class, class_uses($builder->model)) // @phpstan-ignore-line && in_array($field, $builder->model->translatable) && config('database.default') === 'pgsql' ) { $locale = $locale ?? app()->getLocale(); $builder->query->orderByRaw("$field->>'$locale' $order"); } else { $builder->query->orderBy($field, $order); } return $builder; }); } }