Because you're not persisting it, only changing it for the current request.
You could have the LanguageController set a session variable, and use that within a ServiceProvider to actually set the language.
So in your LanguageController, where you now have something like:
app('translator')->setLocale($locale);
You would replace it with:
\Session::put('locale' , $locale);
and in your app\Providers\AppServiceProvider.php:
public function register()
{
// grab locale from session, or use the default....
$locale = \Session::get('locale', \Config::get('app.locale'));
app('translator')->setLocale( $locale );
}