I believe that view layers are the way to go. You can add a new view layer in the upper right corner of blender 2.8. In the scene hierarchy you can set visibility for each item (or collection) in your scene for the currently active view layer. Each view layer should show up as a different pass in a render result.