user()->account->id; if (preg_match('/(.{1,})[:](.{1,})/', $needle, $matches)) { $search_field = $matches[1]; $search_term = $matches[2]; $field = ContactFieldType::where('account_id', $accountId) ->where('name', 'LIKE', $search_field) ->first(); $field_id = $field->id; $results = Contact::whereHas('contactFields', function ($query) use ($accountId, $field_id, $search_term) { $query->where([ ['account_id', $accountId], ['data', 'like', "$search_term%"], ['contact_field_type_id', $field_id], ]); })->paginate($limitPerPage); } else { $results = Contact::search($needle, $accountId, $limitPerPage, $order, 'and is_partial=0'); } return $results; } }