Есть 4 взаимосвязанных таблицы:
- отели (
hotels)

- группы удобств в отелях (
hotels_amenity_groups)

- удобства в отелях (
hotels_amenities)

- pivot-таблица, для связей удобства и отеля (
hotels_amenity_hotel)
Для всех таблиц в Laravel есть свои модели
Сейчас коллекцию отелей формирую так:
$hotels = Hotel::with('hotels_images')->take(20)->get();
Здесь нет никаких данных об удобствах в конкретном отеле. В конечном счёте хочу в эту коллекцию эти данные получить, чтобы по
$hotel->amenities я бы мог получить массив с удобствами в этом отеле, причём где был бы не просто список удобств, а ещё и привязка к группам, к примеру вот так:
hotel
- name
- address
- rooms
--- room
--- room
--- room
- amenities
--- group
----- group_name
----- group_amenities
------- amenity
------- amenity
------- amenity
Как мне связать вышеуказанные модели, чтобы реализовать это?