В документации Laravel указано, что объявление hasManyThrough можно использовать только для отношений двухуровневой глубины. А как насчет более сложных отношений? Например, у пользователя есть множество субъектов, каждый из которых имеет множество колод, каждый из которых имеет множество карт. Получить все карты, принадлежащие пользователю, с помощью объявления hasManyThrough просто, но как насчет всех карт, принадлежащих пользователю?
Подробнее здесь: https://stackoverflow.com/questions/413 ... ationships