Вы не можете использовать поток дважды, как это, после того, как поток был получен с помощью какой-либо операции, такой как map, filter или любой другой операции терминала, например collect, anymatch, et c ,. то вы не можете использовать его снова, вам нужно сохранить продукты в списке, а затем использовать list.stream (), чтобы вы создали новый поток для обеих операций
List<SoldProduct> products = List.of(s1,s2,s3);
Supplier<List<SoldProduct>> listSupplier
= () -> products;
listSupplier.get().stream().anyMatch(s -> true);
listSupplier.get().stream().anyMatch(s -> true);