public function decorate(ResponseBuilder $builder, array $response) : array
 {
     $error = $builder->getError();
     if ($error) {
         if ($error instanceof \Exception) {
             $errorMessage = $error->getMessage();
             $response['error_stack'] = $error->getTrace();
         } else {
             if ($error instanceof \TypeError) {
                 $errorMessage = $error->getMessage();
                 $response['error_stack'] = $error->getTrace();
             } else {
                 if (is_string($error)) {
                     $errorMessage = $error;
                 } else {
                     if ($error === null) {
                         $errorMessage = 'No error message available';
                     } else {
                         $errorMessage = (string) $error;
                     }
                 }
             }
         }
         return $response + ['error' => $errorMessage];
     } else {
         return $response;
     }
 }