TLDR: Следующее определение столбца уже автоматически создает первичный ключ:
$table->bigIncrements('collection_id');
Поэтому ваш явный вызов $ table-> primary () пытается создать второй первичный ключ.
Длинный ответ
Я столкнулся с подобной проблемой.У меня был составной первичный ключ на двух столбцах, который вызывал проблемы, когда я начинал ставить задания в очередь, потому что фреймворк сериализовал только $ primaryKey модели (вы не можете определить два столбца как $ primaryKey в моделях. Поэтому я добавил первичное автоматическое увеличениестолбец миграции:
$this->bigIncrements('id')->primary();
Это вызвало сообщение об ошибке, которое вы получаете. После удаления вызова primary () это сработало, и я заметил, что первичный ключ был установлен автоматически. Вместо этого я сейчас используюсоставной уникальный ключ:
$table->unique(['column_a', 'column_b']);
Надеюсь, это поможет в вашем случае.