Если вы хотите выполнить шаг аутентификации, а затем шаг загрузки, вам необходимо убедиться, что файлы cookie сохраняются в обоих запросах. Прямо сейчас вы только передаете свою переменную $cookieJar
первой.
Явным способом сделать это было бы добавить ее к опциям для второго запроса:
['sink' => $stream, 'cookies' => $cookieJar]
но может быть проще воспользоваться опцией в самом конструкторе клиента:
$client = new GuzzleHttp\Client(['cookies' => true);
Это означает, что каждый запрос (с этим клиентом) будет автоматически использовать общий поваренный файл ie jar, и вы не нужно беспокоиться о передаче его в каждый запрос отдельно.