Validation on association set

I have a registrations model and participants model as follows:

schema "registrations" do
    field :conf_number, :string
    field :status, :integer, default: 1
    belongs_to :event, Event
    has_many :participants, Participant
    timestamps()
  end

schema "participants" do
    field :accommodation_choice, :integer, default: 1
    field :age, :integer
    field :amount_paid, :integer, default: 0
    field :arrival_time, :integer, default: 1
    field :city, :string
    field :conf_number, :integer
    ...
    field :primary, :boolean, default: false
    ...
    field :admin_comment, :string
    belongs_to :registration, Registration
    belongs_to :country, Country
    belongs_to :payment, Payment
    timestamps()
end

I am using nested resources to save the registration with participants. I want to include a validation in changeset that there should be one participant with primary boolean as true while saving the registration. What is the best way to achieve this?

I have create_changeset and changeset (for update) with some logic running but both of them call the following common_changeset in the end:

defp common_changeset(changeset) do
    changeset
    |> validate_required([:conf_number, :event, :status])
    |> cast_assoc(:participants, required: true)
    |> unique_constraint(:conf_number)
end

I want to be able to add something like check_primary method to the common_changeset pipeline as last step. Thanks.