UNIQUE(重複)を含むデータの更新で、FormRequest や Validate で単純に unique を設定してしまうと、自分自身を更新できません。
以下は、FormRequest の rulde() で items.code を UNIQUE 制約している例です。
'code' => ['required', 'string', 'unique:items'],
'code' => 'required|string|unique:items',
この設定だと SQL の WHERE で更新しようとしてしまいます。
WHERE code = 'xxxx';
よって items テーブルのプライマリーキー items.id を除外して更新するのがよいでしょう。
'code' => ['required', 'string', Rule::unique('items')->ignore($this->id)],
'code' => "required|string|unique:items,code,{$this->id},id",
SQL の WHERE は以下のようになります。
WHERE code = 'xxxx' AND id <> 'xxxx'