Need help with changeset errors, I have no idea how to approach this problem

In this case the solution presented is simple enough, but in more complex forms (or forms where you have to massage the data a lot before saving) you can use a changeset for the form where you can handle the errors and another changeset for the persistence layer.

  def form_changeset(%Review{} = review, attrs) do
    review
    |> cast(attrs, [:review])
    |> validate_length(:review, min: 10, max: 250)
  end

<.form :let={f} for={@review_changeset} action={ ~p"/orders/#{@order.slug}" } as="order" method="PATCH">
 <%= label f, :review %>
 <%= textarea f, :review %>
 <%= error_tag f, :review %

  <%= submit "Submit" %>
</.form>

Should show the errors in the form when validating, then, before you save you should get if the user is seller or buyer and update the map received from the form accordingly to pass to the changeset that will validate it before saving.