Per mostrare i prodotti relativi alla categoria ed escludere prodotti specifici dalla raccolta correlata, puoi interrogare la categoria del prodotto e caricare i prodotti correlati utilizzando with
ma rimuovi il prodotto desiderato dalla raccolta utilizzando un metodo di chiusura
$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();