routes/api.php
use App\Models\Repository;use Illuminate\Database\Eloquent\Builder;use Illuminate\Support\Facades\Route;use Illuminate\Http\Request; Route::get('repository', static function (Request $request) { return Repository::query() ->with('owner') ->when($request->input('contributor'), fn (Builder $query, int $contributor) => $query->whereHas( 'contributors', fn (Builder $q) => $q->whereKey($contributor) )) ->when($request->input('owner'), fn (Builder $query, array $owner) => $query->whereHasMorph( 'owner', $owner['type'], fn (Builder $q) => $q->whereKey($owner['id']) )) ->orderByDesc('stargazers_count') ->paginate(6) ->withQueryString();})->name('repository');