afterCreating(function (HasMedia $model) use ($filename, $collection) { $pathinfo = pathinfo($filename); UploadedFile::fake()->image($filename, 1000, 1000)->storeAs('media-library', $filename, 'temp'); $model->addMediaFromDisk('media-library/' . $filename, 'temp') ->usingName($pathinfo['filename']) ->usingFileName($pathinfo['basename']) ->toMediaCollection($collection); }); } public function withDocument(string $collection, string $filename, string $content = '', array $properties = []): self { return $this->afterCreating(function (HasMedia $model) use ($filename, $collection, $content, $properties) { $pathinfo = pathinfo($filename); UploadedFile::fake()->create($filename, $content, 'application/pdf')->storeAs('media-library', $filename, 'temp'); $model->addMediaFromDisk('media-library/' . $filename, 'temp') ->usingName($pathinfo['filename']) ->usingFileName($pathinfo['basename']) ->withCustomProperties($properties) ->toMediaCollection($collection); }); } }