contactStorageProvider->fetchByUuid($search->uuid); if ($modelResult === null) { return null; } return $this->contactMapper->fromModel($modelResult); } /** * @return LengthAwarePaginator */ public function execute(SearchContactIntent $searchIntent): LengthAwarePaginator { if ($searchIntent->query == SearchContactIntent::queryAll()->query) { /** @var LengthAwarePaginator $modelResult */ $modelResult = $this->contactStorageProvider->fetchPaginatedAll($searchIntent->resultsPerPage); } else { /** @var LengthAwarePaginator $modelResult */ $modelResult = $this->searchProvider->search($searchIntent->query, $searchIntent->resultsPerPage); } $collection = $modelResult->getCollection()->map( fn (Contact $contact) => $this->contactMapper->fromModel($contact), ); return new LengthAwarePaginator( $collection, $modelResult->total(), $modelResult->perPage(), $modelResult->currentPage(), $modelResult->getOptions(), ); } }