Хотя, наверное, с точки зрения скорости работы при апдейте уже загруженных в память записей, с которыми происходит работа в текущий момент, их апдейт или удаление происходить будет быстрее, при указании (повторном поиске в момент апдейта или удаления) по id, а не когда по нескольким условиям в where.
Читал доку, там пишут, что пользуйте id, а двойный и тройные ключи вам никто не запрещает пользовать в виде уникальных индексов таблицы.
У меня в общем-то в основном таблицы без autoincrement айдишников. Зато как раз двух и трёх ключевые.
Предположил, что по id быстрее будет происходить поиск в mysql. Чем по трём полям. Хотя наверное это должны быть ТАКИЕ нагрузки, чтобы это стало заметно... На ТАКИХ нагрузках вполне возможно, что лишнее поле (id) в таблице будет создавать сопоставимые задержки. Короче я сильно загоняюсь на экономию времени поиска.
потом, наверное, этот id нужен для бесшовной (или как это умно называется) внутренней адресации данных внутри eloquent. Это предположение. Не смотрел, как оно там устроено.
Да, там реализация такая что связи строятся через первичные ключи id эти. Есть, например, старая либа https://www.notorm.com которая делает тоже самое только как по мне проще и без "тормозов". ((: