categoryOptions = Category::with('translations') ->whereNot('type', 'App\Models\Tag') ->get() ->sortBy(function ($category) { // Use the translated name (accessor) for sorting, checking if translation exists return $category->translation->name ?? __('Untitled category'); }) ->mapWithKeys(function ($category) { return [ $category->id => [ 'category_id' => $category->id, // Check if translation exists before trying to access its name property 'name' => $category->translation ? $category->translation->name : __('Category') . ' ' . __('id') . ' ' . $category->id . ' ' . $category->type, ] ]; }) ->toArray(); $this->categorySelected = $categorySelected; $this->updated(); } /** * When component is updated * * @return void */ public function updated() { $this->dispatch('categorySelected', $this->categorySelected); } public function render() { return view('livewire.category-selectbox'); } }