Чем `hasManyThrough` отличается от `belongsToMany`?
В терминах Laravel belongsToMany использует сводную таблицу, существующую только чтобы соединить две модели. Отношение через промежуточную достаёт дальнюю модель через ту, что сама является полноценной сущностью. Если связующая таблица несёт собственные данные — отметку времени, статус, — это модель, и обращение с ней как со сводной делает эти данные неудобными.