$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
и дело всё-таки в фабрике? Нам остаётся только гадать.