$model->getMorphClass(), 'model_id' => $model->id, 'uuid' => Str::uuid(), 'collection_name' => $collectionName, 'name' => $name ?? $defaultName, 'file_name' => $s3Key, 'mime_type' => $mimeType ?? 'image/jpeg', 'disk' => 's3', 'conversions_disk' => 's3', 'size' => $fileSize ?? 0, 'manipulations' => [], 'custom_properties' => [], 'generated_conversions' => $generatedConversions, 'responsive_images' => [], 'order_column' => $orderColumn ?? 1, ]); } private function syncPhoto(Model $model, array $data, string $collectionName = 'photos'): void { if (! array_key_exists('photo_key', $data)) { return; } $currentKey = $model->getFirstMedia($collectionName)?->file_name; if ($data['photo_key'] === $currentKey) { return; } $model->clearMediaCollection($collectionName); if (! empty($data['photo_key'])) { $this->registerMedia( model: $model, s3Key: $data['photo_key'], collectionName: $collectionName, orderColumn: 1, ); } } }