->save()
session(['key' => 'value']);
session()->save();
$val = session('key');
$response = $next($request);
берутся куки, запускается если нет сессия, а потом уже сессия сохраняется и пишется в куки идентификатор. То есть по логике вещей в данном случае:session(['captcha' => mt_rand(0, 11)]);
$val = session('captcha');
$v = mt_rand(0, 11);
session(['captcha' => $v]);
$val = $v;
session('captcha')
Так откуда ты берешь асинхронность? Может ты просто не сохранял сессию или не перезагружал модель?