Fixed my own issue. Modified the code a bit and and used the withToken method. To get around my 403 issue, I set the token type to null as by default, it uses Bearer where as mine was Basic.
$encoded = base64_encode($userId . ':' . $userKey);
$authHeader = ['Basic ' . $encoded];
$response = Http:withHeaders([
'accept' => 'application/json'
])
->withToken($authHeader, null)
->withOptions([
'debug' => config('app.env'),
])
->post($url . 'order/confirm', ['token' => $token])
return $response->throw()->json();
That fixed the issue for me.