Hi,
You can do this using rules and conditional formatting.
1. Add a Boolean field with default value set to false to the schema.
2. Add a rule to the button to set the Boolean field to True.
3. Add a conditional formatting to the button as if Boolean field value is equal to true then disable the button.
4. Add the same conditional formatting for the fields to hide/ make read only.