laravel 6.x 確認画面を挟んだstorage画像の保存処理

Laravelでは画像はstorageフォルダに格納する
Webからのアクセスを許すには、public/storageからstorage/app/publicへシンボリックリンクを張る必要がある
https://readouble.com/laravel/6.x/ja/filesystem.html

### 駄目な例
moveコマンドで、public配下に格納

UsersController.php

if($file = $request->file('file')){
            $name = $file->getClientOriginalName();
            $file->move('./images/tmp/', $name);
            $inputs['path'] = $name;

### 格納先・読み込み元をstorageに修正
$ php artisan storage:link
// ./public/storageが./storage/app/publicへのリンクとなる

UsersController.php

if($file = $request->file('file')){
            $name = $file->getClientOriginalName();
            // $file->move('./images/tmp/', $name);
            $file->storeAs('./public/images/tmp/', $name);
            $inputs['path'] = $name;

confirm.blade.php

<img src="{{ $inputs&#91;'path'&#93; ? asset('/storage/images/tmp/' . $inputs&#91;'path'&#93;) : 'https://placehold.jp/100x100.png' }}" class="img-icon">

確認画面で戻るボタンが押された場合は、Storage::deleteで削除する。確認画面で登録完了ボタンが押された場合は、画像の前部にCarbonでtimestampを付けて、prdフォルダに移動させる。画像のpathはDBに格納する。

UsersController.php

use Illuminate\Support\Facades\Storage;
use Carbon\Carbon;
public function store(Request $request)
    {
        $action = $request->get('action');
        $inputs = $request->except('action');

        if($action == '戻る'){
            Storage::delete('public/images/tmp/'.$inputs['profile_img']);
            return redirect()->action('UsersController@create')->withInput($inputs);
        }
        $timestamp = Carbon::now()->timestamp;
        $path = $timestamp.'_'.$inputs['profile_img'];
        Storage::move('public/images/tmp/'.$inputs['profile_img'], 'public/images/prd/'.$path);
        return 'done';
    }

ドキュメントを読む限り、storageに格納した方がファイルシステムの使う上で都合が良いように見えます。