Manejar la excepción de Guzzle y obtener el cuerpo HTTP

Me gustaría manejar los errores de Guzzle cuando el servidor devuelve los códigos de estado 4xx y 5xx. Hago una petición como esta:

$client = $this->getGuzzleClient();
$request = $client->post($url, $headers, $value);
try {
    $response = $request->send();
    return $response->getBody();
} catch (\Exception $e) {
    // How can I get the response body?
}

$e->getMessage devuelve información de código pero no el cuerpo de la respuesta HTTP. ¿Cómo puedo obtener el cuerpo de respuesta?

Respuestas a la pregunta(3)

Su respuesta a la pregunta