Почему у тебя элементы корзины — BelongsToMany? Они что, какой-то ещё корзине принадлежать могут?
Почему корзина у элемента — HasOne? Он что, может сам себе родителя создавать?
Почему вариант товара у элемента — HasOne? Он что, под каждый элемент корзины создаётся отдельно? Два красных свитера 44 размера (ProductVariant) в двух разных корзинах — две разные модели?
nikkon82, по таблицам — да. По полям — нет. Но это с точки зрения ларавел. Ты бы мог просто проверить, как ларавел формирует названия таблиц и полей, если они не указаны явно, но тебе что-то мешает это сделать...
yellow_pus, я не вижу реального вопроса. «Хотелось бы, получить что то типа: TestRelation::with('candidate')->all()" — и? Ты пробовал? Не работает? Если не работает, то почему не написал? Если не пробовал, то смысл тебе вообще помогать?