I would go with form objects. The unique rule allows to ignore a defined ID like so
Rule::unique('recipes,name')->ignore($existingId),