И так, допустим у нас есть база данных postrges. И нам нужно сохранить контакты в виде json.
Пример данных
"contacts": {
"email": [
"test@mail.ru",
"test3@mail.ru"
],
"phone": [
"+79098201000",
"+79998201000"
]
}
Создаем поле
$table->json('contacts');
Так как реквест в нашем контроллере приходит в виде массива (array != json), данные в поле не пройдут валидацию. Для того что-бы все было ровно, нужно изменить тип валидации поля на массив и добавить кастомный каст этому полю.
Валидируем как массив
'contacts' => ['array']
Добавляем кастомный каст в модель
protected $casts = [
'contacts' => 'array',
];