public function import($disk, $directory, $filename, $extension)
{
$disk = $this->verifyDisk($disk);
$storage = $this->filesystem->disk($disk);
$model = $this->makeModel();
$model->disk = $disk;
$model->directory = $directory;
$model->filename = $filename;
$model->extension = $this->verifyExtension($extension);
if (!$storage->has($model->getDiskPath())) {
throw FileNotFoundException::fileNotFound($model->getDiskPath());
}
$model->mime_type = $this->verifyMimeType($storage->mimeType($model->getDiskPath()));
$model->aggregate_type = $this->inferAggregateType($model->mime_type, $model->extension);
$model->size = $this->verifyFileSize($storage->size($model->getDiskPath()));
$model->save();
return $model;
}