I have a project, with some swimlanes. Each swimlane represents a business area. We'll call it the Master Project.
I want some users to see ONLY the issues for their business area. i.e., only the issues in a particular swimlane.
To enable this, I've set up other projects (and boards) for each of the swimlanes, so that they display only the issues from the relevant swimlane in the Master Project. I've done that by using a filter query to display the issues from the appropriate swimlane in the Master Project. That works for me (a Jira administrator), I can see all the issues.
To manage the visibility, I've set up groups, project roles, and permission schemes. The project roles have browse permission for their board. They do NOT have browse permission for the Master Project.
I've added the relevant group (and project role) to each board under the People setting.
I've logged in as one of the users (who is not an administrator) and can see the project board they belong to, but can't see the issues in that board. I can only see the issues when I login as myself (an administrator)
I followed / checked the procedure here - https://confluence.atlassian.com/cloudkb/how-to-restrict-project-access-for-teams-in-jira-cloud-953142266.html
What have I missed? 
I think I may have to do the reverse of the above approach. i.e., have issues in individual projects, then have the Master Project draw from them via a filter query.