If you have an Artisan command, you can launch it not only from Terminal, but also from anywhere in your code, with parameters. Use Artisan::call() method:
1Route::get('/foo', function () {2 $exitCode = Artisan::call('email:send', [3 'user' => 1, '--queue' => 'default'4 ]);5 6 //7});