Jag tror att problemet är att din ::has() metod letar efter produkter med exakt 5 olika storlekar på varje specifik produkt, vilket skulle anta att du skulle använda $this->hasMany('Size') i din produktmodell. Där som ::where() metoden returnerar resultat där storleken på produkten är 5.
I dokumentationen använder de ett exempel på kommentarer. Ett inlägg kommer att ha en lista med kommentarer. Du kan hitta inlägg som har minst en kommentar (t.ex. Post::has('comments')->get() ) eller så kan du hitta inlägg som har fler än 3 kommentarer (t.ex. Post::has('comments', '>=', '3')->get() ).
https://laravel.com/docs/eloquent#querying-relations