Всем привет. Есть две модели фильмы(Movie) и жанры (Genre). Фильмы связаны с жанрами по связи belongsToMany с pivot таблицей genre_movie. 
Задача: найти все фильмы, с заданными id жанров. 
Делаю так: 
$movies = Movie::with('genres')
            ->whereHas('genres', function ($query) use ($ids) {
                foreach ($ids as $id) {
                    $query->where('genre_movie.genre_id', $id);
                }
            })
            ->get();
В таком варианте я всегда получаю пустую выборку. Если же вместо массива $ids, передать только одно значение, то получаю все фильмы по этому жанру.
$movies = Movie::with('genres')
            ->whereHas('genres', function ($query) use ($id) {
                    $query->where('genre_movie.genre_id', $id);
            })
            ->get();
Если же вернуть перечисление всех id, то результат пустой. В этом случае запрос выглядит так: 
select * from `movies` where exists (select * from `genres` inner join `genre_movie` on `genres`.`id` = `genre_movie`.`genre_id` where `movies`.`id` = `genre_movie`.`movie_id` and `genre_movie`.`genre_id` = ? and `genre_movie`.`genre_id` = ?)
Не понимаю, в чем проблема? Наверняка какую-то мелочь упускаю, подскажите, пожалуйста.