isSearchable = $condition; $this->searchColumns = null; } else { $this->isSearchable = true; $this->searchColumns = Arr::wrap($condition); } $this->isGloballySearchable = $isGlobal; $this->isIndividuallySearchable = $isIndividual; $this->searchQuery = $query; return $this; } public function getSearchColumns(): array { return $this->searchColumns ?? $this->getDefaultSearchColumns(); } public function isSearchable(): bool { return $this->isSearchable; } public function isGloballySearchable(): bool { return $this->isSearchable() && $this->isGloballySearchable; } public function isIndividuallySearchable(): bool { return $this->isSearchable() && $this->isIndividuallySearchable; } protected function getDefaultSearchColumns(): array { return [Str::of($this->getName())->afterLast('.')]; } }