model; if ($model && method_exists($model, 'getMediaPath')) { return $model->getMediaPath($media).'/'; } return $this->defaultPath($media); } public function getPathForConversions(Media $media): string { return $this->getPath($media).'conversions/'; } public function getPathForResponsiveImages(Media $media): string { return $this->getPath($media).'responsive/'; } private function defaultPath(Media $media): string { $module = strtolower(class_basename($media->model_type)); $date = $media->created_at->format('Y/m/d'); $id = $media->id; return "{$module}/{$date}/{$id}/"; } }