Pour afficher les produits par catégorie et exclure des produits spécifiques de la collection associée, vous pouvez interroger la catégorie de produit et charger les produits liés en utilisant with
mais retirez le produit souhaité de la collection en utilisant une méthode de fermeture
$product = 10;
$category = Category::with(['products'=> function($query) use($product) {
$query->where('id','!=', $prodcut);
}])
->whereHas('products', function (Builder $query) use($product) {
$query->where('id', $product);
})->get();