Переводишь json в массив или в коллекцию, с чем удобнее работать:
$dataArray = json_decode($jsonString, true);
$dataCollection = collect($dataArray);
Готовишь данные под формат твоих моделей и сохраняешь модели. Если данные повторяющиеся, то делаешь это в цикле.
По поводу сохранения изображений. Например, у твоей модели есть поле image
public $attachOne = ['image' => 'System\Models\File'];
Код создания модели будет выглядеть примерно так:
use System\Models\File;
// ...
$model = new MyModel();
$model->name = array_get($data, 'name');
$newImage = new File();
$newImage = fromUrl(array_get($data, 'imageUrl');
$model->image()->add($newImage);
// ...
$model->save();