C03 — self-booking "Clinician" list, tenant 1
Finding 2 of rev-20261015-001, re-read after the fix.
Captured 15 October 2026 from the running app at http://127.0.0.1:8010

Method (a screenshot of a closed <select> cannot show its options, so the DOM
was dumped instead):

    powershell -ExecutionPolicy Bypass -File scripts\dump-dom.ps1 `
        -Account patient@lagosfamilyclinic.bitmed.test `
        -Url /my/appointments -OutFile work\tenant1-my-appointments.html

    # the <option> elements of <select id="clinician_user_id"> were then read
    # from that dump, and each id was resolved against the running database
    # with `php artisan tinker` (User::withoutTenantScope()->find($id)).

Options now offered to the patient (5):

    5   Dr Emeka Nwosu
    4   Dr Ngozi Eze
    12  Funmi Adebayo
    13  Grace Etim
    6   Halima Yusuf

Their seeded roles, read from the same database:

    4   Dr Ngozi Eze      doctor
    5   Dr Emeka Nwosu    doctor
    6   Halima Yusuf      nurse
    12  Funmi Adebayo     nutritionist
    13  Grace Etim        nurse

Every other active tenant-1 account is no longer offered. Before the fix all
of these appeared in the list (confirmed by reading the same query before and
after the change):

    2   Amaka Okonkwo     tenant_admin
    3   Tunde Balogun     receptionist
    7   Segun Adeyemi     lab_scientist
    8   Bisi Ogun         pharmacist
    9   Kelechi Obi       cashier
    10  Ada Nwachukwu     finance_supervisor
    11  Bola Ajayi        finance_manager
    14  Aisha Bello       patient
    15  Zainab Bello      caregiver

Gate applied in PatientAppointmentsController::index():
  status = active
  AND role key IN RoleTemplates::clinicalRoleKeys()  -> doctor, nurse, nutritionist
  AND tenant = the signed-in patient's tenant

The service still refuses a request for anyone with no published window, so
this narrows the offer rather than replacing that check.
