In Jira you can create multiple custom fields of various types where you want to store crucial information related to you project. To avoid people from skipping those fields you can use a field permission scheme in Jira, its main job is to make a field required or hidden in the project.
Now making a field required makes sense but why would you hide a field using field permission scheme? Why can't we just not add the field?
The answer is very simple - reusing screens. Just like any other configuration in Jira, the screens can also be reused by various projects. Now as a good practice there should have been standards defined in your Jira instance for similar type of projects. When 2 or more projects are using the same screen with same set of custom fields then hiding few specific fields for selected projects can be done using field configuration scheme. You can also use custom field context but let us talk about it another day.
Coming back to the question of making a field required, when you use field configuration scheme, the field is required across the project irrespective of the issue type. That means whether you create a bug or a story in a project the field needs to have a value filled in. It can be annoying for the users.
If this suits you then use field configuration scheme. You may want to use this approach when you want to make sure there is a field across the project that needs to be filled in at the creation of the issue.
For example Summary and Issue Type fields are mandatory at issue creation.
However there will be many use cases where you do not want people to fill in the value in the field at the creation but you need that value to be filled in when the issue is progressed further in the workflow. May be you want to capture RCA when bug is closed or you need to make sure a justification is added when the issue is escalated. In such cases you need to use a workflow validator.
Now in Jira with the help of few apps like "Jira Miscellaneous Workflow Extensions" or "ScriptRunner for Jira" you can make a field required during a workflow transition by adding a workflow validator. If you already have these apps then great otherwise depending upon how much customisations you need to do in Jira, you need to evaluate whether you need to purchase additional apps or not.