Consider Jira issue type called "Task".
Let's take a custom field called "Test"
When the Task is in Submitted state. -- "Test" field should be read-only
When the Task is in Planned state. --"Test" field should be read-only
When the Task is in Ready for review state. -- "Test" field should be read-only.
When the Task is in Review in progress state. -- "Test" field should be editable.
When the Task is in follow-up state. -- "Test" field should be editable.
When the Task is in closed state. -- "Test" field should be read-only.
