I have several fields that are required upon creation. Once created, I change the record type to a read-only type, associate the record type with a read-only page layout too. However, Salesforce doesn't allow me to toggle to the read-only option in the page layout (see below image). This seems like a bug in Saleforce. Any workarounds for this scenario?
Database required fields, be it master-detail lookups, system required, or custom required (e.g. checking required on a custom field metadata), will always show up as editable. You can't override this at the page layout level. Instead, consider making the entire record read-only by setting up your sharing settings (e.g. using criteria-based sharing) or using the
Approval.lock method to force read-only for that record for normal users.