queryBuilder = $queryBuilder; $this->searchKeyword = $searchKeyword; } /** * Get the raw results of the search. * * @param class-string<\Laravel\Nova\Resource> $resourceClass * @param array $searchColumns * @return mixed */ public function handle($resourceClass, array $searchColumns) { return $this->queryBuilder->where(function ($query) use ($searchColumns) { $connectionType = $query->getModel()->getConnection()->getDriverName(); collect($searchColumns) ->each(function ($column) use ($query, $connectionType) { if ($column instanceof Column || (! is_string($column) && is_callable($column))) { $column($query, $this->searchKeyword, $connectionType); } else { Column::from($column)->__invoke($query, $this->searchKeyword, $connectionType); } }); }); } }