Как в Laravel 5.x инкапсулировать загрузку файлов для разных сущностей или хотя бы в рамках разных действий в контроллере?
Чтобы изменить свойство у $request нужно использовать merge$request->merge(['photo' => $fileNameToStore]);
Я бы так не делал.
Лучшим на мой взгляд решением было бы как раз скармливание объекта UploadedFile в используемую модель. А в самой модели использовать сеттер этого атрибута для перехвата и преобразования значения.
Выглядеть в модели это будет приблизительно так:public function setPhotoAttribute($value) {
    if ($value instanceOf UploadedFile) {
            $fileNameWithExt = $value->getClientOriginalName();
            $filename = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
            $extension = $value->getClientOriginalExtension();
            $fileNameToStore = $filename . '_' . time() . '.' . $extension;
            $file->storeAs('public/articles', $fileNameToStore);
            return $this->attributes['photo'] = $fileNameToStore;
    }
}
Исходник нужно проверить. Накидал от руки :)