I tested to modify my announcement customization management pack from this post to extend the package class instead. It works really well, I can target packages to a group of users or to everyone. The following post can be a little bit confusing if you have not read this first, please do.

The management pack looks like this

I can configure a package for which group it will be available in the self service portal. The user can then request the software, a change request must still be approved before they get it. The result is that instead of all users see all packages from Configuration Manager in the self service portal, they only see the package assigned to their group. When I was testing it I used the same groups as in this post.