Use JSON data output returned from other controller's actions using AJAX and VUE.
There's a general idea of keeping logic or engine code separate from your controllers so that you can call that code from anywhere within your application and not just through routing, I like to think of them as containers of functionality, or as they're more commonly called, 'repositories', classes stored away from your controllers but instantiated and called from anywhere including your controllers.
Check out Jeffrey's video on this: https://laracasts.com/lessons/repositories-simplified
Make that JSON output accessible with authentication and authorization via other applications using AJAX.
Can't quite say I fully understand this one, I mean - sounds like exactly what you're already doing with any controller/route/request. Simply create the HTTP from another source. You might need to install something like laravel-cors to allow cross-origin requests, but there isn't much more to it than what you've already done.
Laravel CORS: https://github.com/barryvdh/laravel-cors