$category_id = [ '1', '2', '3', ];
return [ 'category_id' => $category_id, ]$table->bigInteger('category_id')->unsigned();
$table->foreign('category_id')
->references('id')
->on('categories');
category_id переводится как "идентификатор категории" (единственное число). Тип этого столбца - число. Почему вы решили, что туда можно записать массив (и почему-то строк)?--seed и дело всё-таки в фабрике? Нам остаётся только гадать.