Так замечательно задан вопрос, что аж ответить захотелось!
Структура у вас правильная, нсколько я понял из описания.
И поторой такие "цепочки связей" бывают не из 3-х звеньев, а из 10-ти:)
Просто у лараваель есть hasManyThrough через 1 таблицу, но это ни к чему не обязывает. Недавно видел пакет hasManyThrough для 2+ промежуточных таблиц.
Для получения обратных связей по belongTo просто используете так, никакого обратного hasManyThrough тут и ненадо:
$color->collection;
$color->collection->manufacturer;