@edit画面が呼ばれ、DBから初期データ取得してフォーム要素にセットして表示
 ⇒ この画面で編集されて[確認]ボタン押されPOST送信される

Aconfirm画面が呼ばれ、フォームデータを取得しバリデーションして以下2通りの処理に分かれる
 その1) ⇒ バリデーションOKの場合、確認画面を表示。return view('path.to.confirm', compact('data'));
 その2) ⇒ バリデーションNGの場合、edit画面に戻しエラー表示。return view('path.to.edit', compact('data', 'error'));

以上のような画面遷移があるとすると
path/to/edit.blade.phpのフォーム要素valueの書き方をどうすべきか迷っています。

DBから取得し、そのままビューに渡すと value="{{$data->hoge}}" 形式で書きます。
edit画面に戻す時にそのまま渡すと配列のため value="{{$data['hoge']}}" こう書くことになります。

なので両方に対応するには value="{{$data['hoge'] or $data->hoge}}" のように書くことで対応できそうです。
でもスマートではないのでedit画面に戻す時は $data = (object)$data; のようにキャストすることで value="{{$data->hoge}}" だけでよさそうになりそうです。

これって他にもっといい方法ありますか?