If you are using vendor bill and payment combination for payroll, I doubt you can restrict it via permission from showing up in those places. You can use a unique identifier to throw exception "No access" via workflow when someone not defined in the workflow trying to look up the vendor, but still all transactional details would be viewable many other places. Best practice for external payroll is to just bring in the final JE from payroll system each pay cycle. I just wonder who came up with this process 🤔