When investors call: How your business should talk about coronavirus

30 Martie 2020 • Imobiliare

When investors call: How your business should talk about coronavirus

As the next earnings season approaches, CFOs and other senior leaders will need to focus on addressing immediate concerns associated with the pandemic while resetting expectations.

The rapid spread of the novel coronavirus has sent governments, markets, and communities worldwide on a fervid search for answers—how long, how many, how much? Investors, too, are seeking facts about, among other things, how the global pandemic is affecting business operations, what companies are doing to protect employees and suppliers, what companies’ recovery plans entail, and whether companies have enough liquidity to withstand the pandemic. The markets are volatile, so companies’ responses to these queries could carry considerable weight with critical intrinsic investors and materially affect companies’ recovery plans and capitalization. To address investors’ immediate concerns and reset their expectations, CFOs and other senior business leaders should be prepared to answer the following questions.

What exactly is COVID-19 doing to your business?
Be prepared to give investors a clear and detailed accounting of all the ways the pandemic has affected business operations and financials. This is clearly not business as usual. Depending on the industry, the company may be experiencing severe supply-chain issues—think of the unexpected peak demand for medical supplies and the parts shortages because of factory closures. Or the company may be facing a deep decline in demand for products or services because of quarantining and shelter-in-place mandates, as we’ve seen in tourism and hospitality.

To help investors put commercial and operational disruptions into context, CFOs should perform diagnostics on company demand and supply and give investors a preliminary outlook on each. It would be helpful to provide investors with a breakdown of revenue and EBITDA by region, with a comparison of numbers from these markets before, during, and after the virus. What earnings-recovery measures have been implemented in which regions? Are competitors taking similar or other actions? Sharing this information with investors can demonstrate that senior leaders are attempting to stay ahead of the curve and anticipating impacts from the coronavirus across all regions, even those that haven’t been severely affected yet. CFOs should also prepare a few scenarios, from conservative to worst case, to suggest how the company expects business performance to unfold and how the company might respond under each circumstance.

What specific actions are you taking to protect the business?

It is important to acknowledge the ways in which the company is heeding and communicating the advice of leading healthcare organizations, such as the Centers for Disease Control and Prevention and WHO. It is also critical to clearly outline the direct steps the company is taking to keep employees, vendors, suppliers, and other key stakeholders safe and healthy in the wake of COVID-19, whether that involves providing health support to those affected, mandating that employees work from home, or monitoring the actions and safety of vendors, suppliers, and those who cannot work from home. It can be helpful to provide general time frames for when employees may return to work. Investors should also be reassured that the company has established a clear business-continuity plan, including contingencies for leadership succession should senior executives contract coronavirus (particularly those over age 60). Such plans will obviously look different depending on company and industry. Additionally, it would be helpful for investors to know that a central nerve center has been established to coordinate liquidity forecasting, strategy and operations, and the mobilization of recovery measures.

Does the business have enough liquidity to survive?
Investors need a detailed description of the company’s liquidity position, explaining how well the company could withstand a prolonged downturn as well as how decreased earnings could affect any refinancing plans or other major long-term decisions. The CFO should set the context properly—providing a sense of what the liquidity position is now and where it may be in three months, six months, and 12 months. If there are concerns, the finance leader should share them up front. Investors need to understand how the company plans to generate cash in this period of uncertainty. Depending on the industry, the CFO and finance team may need to weigh options to divest assets, delay capital expenditures, reduce working capital, or deploy cost-cutting programs. It is important to share those options and the timing of their implementation with investors, as well as the logic for why the company has decided to emphasize one course of action over another. Conversely, if the company has high levels of cash, investors should understand what the capital-allocation plan will be. Given the current market, CFOs should not be surprised if investors express their preference that excess cash be returned.

Critically, the CFO should describe in detail for investors the internal and external resources the company may access in this time of crisis, even if just as a precaution—for instance, government aid, credit lines and commitments from banks, potential sale of real estate or other assets, or expediting any established cost-cutting or restructuring programs. Conversely, if the company is fortunate and operating from a position of strength, it is helpful to share with investors any bold plans to seize opportunities that may appear during the crisis period. The CFO must convey the company’s preparedness for a range of possible outcomes in these discussions; investors will be looking for signs of critical thinking.

Can you provide estimates?

Report to investors any changes in the company’s capital-allocation plans, particularly any changes in policies for dividends, capital expenditures, and M&A. It is not prudent to offer predictions for the rest of the financial year. In uncertain times like this one, promising a bottom-line number for next year’s earnings can raise questions about how the company will get there. The “how”—or the actions you are taking—will be far more important to investors than the actual numbers.

If guidance assumptions have changed as a result of COVID-19, share that information—and describe the challenges with the same level of detail you would use during your company’s Capital Markets Day, in which the nitty-gritty of strategy and business-development plans take center stage. Remember that it is better to be conservative in your messaging: it is always easier to deliver unexpectedly good news to investors than to ask them to revise high expectations downward. Plus, the options available now, as the pandemic evolves and before the full economic impact is felt, will likely be more palatable than those available later.

Particularly in times of crisis, it behooves CFOs and executive teams to show leadership and to be transparent with investors about all bad news and potential risks. It is critical to communicate quickly about tough decisions—for instance, cost reductions or facility closures—to ensure that investors, employees, and customers see leaders taking clear, resolute action to right the ship.


Source: McKinsey & Company


Whoops! There was an error.
Predis \ Response \ ServerException
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error. Predis\Response\ServerException thrown with message "MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error. " Stacktrace: #12 Predis\Response\ServerException in /var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php:370 #11 Predis\Client:onErrorResponse in /var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php:335 #10 Predis\Client:executeCommand in /var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php:314 #9 Predis\Client:__call in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:114 #8 Illuminate\Redis\Connections\Connection:command in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:214 #7 Illuminate\Redis\Connections\Connection:__call in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php:93 #6 Illuminate\Cache\RedisStore:put in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:208 #5 Illuminate\Cache\Repository:put in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php:66 #4 Illuminate\Session\CacheBasedSessionHandler:write in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/Store.php:129 #3 Illuminate\Session\Store:save in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /var/www/html/blissimobiliare/public/index.php:58
12
Predis\Response\ServerException
/vendor/predis/predis/src/Client.php370
11
Predis\Client onErrorResponse
/vendor/predis/predis/src/Client.php335
10
Predis\Client executeCommand
/vendor/predis/predis/src/Client.php314
9
Predis\Client __call
/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php114
8
Illuminate\Redis\Connections\Connection command
/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php214
7
Illuminate\Redis\Connections\Connection __call
/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php93
6
Illuminate\Cache\RedisStore put
/vendor/laravel/framework/src/Illuminate/Cache/Repository.php208
5
Illuminate\Cache\Repository put
/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php66
4
Illuminate\Session\CacheBasedSessionHandler write
/vendor/laravel/framework/src/Illuminate/Session/Store.php129
3
Illuminate\Session\Store save
/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php87
2
Illuminate\Session\Middleware\StartSession terminate
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php218
1
Illuminate\Foundation\Http\Kernel terminateMiddleware
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php189
0
Illuminate\Foundation\Http\Kernel terminate
/public/index.php58
/var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php
     *
     * @return mixed
     */
    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $response)
    {
        if ($command instanceof ScriptCommand && $response->getErrorType() === 'NOSCRIPT') {
            $eval = $this->createCommand('EVAL');
            $eval->setRawArguments($command->getEvalArguments());
 
            $response = $this->executeCommand($eval);
 
            if (!$response instanceof ResponseInterface) {
                $response = $command->parseResponse($response);
            }
 
            return $response;
        }
 
        if ($this->options->exceptions) {
            throw new ServerException($response->getMessage());
        }
 
        return $response;
    }
 
    /**
     * Executes the specified initializer method on `$this` by adjusting the
     * actual invokation depending on the arity (0, 1 or 2 arguments). This is
     * simply an utility method to create Redis contexts instances since they
     * follow a common initialization path.
     *
     * @param string $initializer Method name.
     * @param array  $argv        Arguments for the method.
     *
     * @return mixed
     */
    private function sharedContextFactory($initializer, $argv = null)
    {
        switch (count($argv)) {
            case 0:
Arguments
  1. "MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.  "
    
/var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php
    }
 
    /**
     * {@inheritdoc}
     */
    public function createCommand($commandID, $arguments = array())
    {
        return $this->profile->createCommand($commandID, $arguments);
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->connection->executeCommand($command);
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
                $response = $this->onErrorResponse($command, $response);
            }
 
            return $response;
        }
 
        return $command->parseResponse($response);
    }
 
    /**
     * Handles -ERR responses returned by Redis.
     *
     * @param CommandInterface       $command  Redis command that generated the error.
     * @param ErrorResponseInterface $response Instance of the error response.
     *
     * @throws ServerException
     *
     * @return mixed
     */
    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $response)
    {
Arguments
  1. Predis\Command\StringSetExpire {}
    
  2. Predis\Response\Error {}
    
/var/www/html/blissimobiliare/vendor/predis/predis/src/Client.php
        );
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
                $error = true;
            }
 
            return (string) $response;
        }
 
        return $response;
    }
 
    /**
     * {@inheritdoc}
     */
    public function __call($commandID, $arguments)
    {
        return $this->executeCommand(
            $this->createCommand($commandID, $arguments)
        );
    }
 
    /**
     * {@inheritdoc}
     */
    public function createCommand($commandID, $arguments = array())
    {
        return $this->profile->createCommand($commandID, $arguments);
    }
 
    /**
     * {@inheritdoc}
     */
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->connection->executeCommand($command);
 
        if ($response instanceof ResponseInterface) {
            if ($response instanceof ErrorResponseInterface) {
Arguments
  1. Predis\Command\StringSetExpire {}
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php
     * @param  \Closure  $callback
     * @return void
     */
    public function psubscribe($channels, Closure $callback)
    {
        return $this->createSubscription($channels, $callback, __FUNCTION__);
    }
 
    /**
     * Run a command against the Redis database.
     *
     * @param  string  $method
     * @param  array   $parameters
     * @return mixed
     */
    public function command($method, array $parameters = [])
    {
        $start = microtime(true);
 
        $result = $this->client->{$method}(...$parameters);
 
        $time = round((microtime(true) - $start) * 1000, 2);
 
        if (isset($this->events)) {
            $this->event(new CommandExecuted($method, $parameters, $time, $this));
        }
 
        return $result;
    }
 
    /**
     * Fire the given event if possible.
     *
     * @param  mixed  $event
     * @return void
     */
    protected function event($event)
    {
        if (isset($this->events)) {
            $this->events->dispatch($event);
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel:NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
      1 => 7200
      2 => "s:312:"a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php
    /**
     * Unset the event dispatcher instance on the connection.
     *
     * @return void
     */
    public function unsetEventDispatcher()
    {
        $this->events = null;
    }
 
    /**
     * Pass other method calls down to the underlying client.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        return $this->command($method, $parameters);
    }
}
 
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel:NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
      1 => 7200
      2 => "s:312:"a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php
 
        foreach ($values as $index => $value) {
            $results[$keys[$index]] = ! is_null($value) ? $this->unserialize($value) : null;
        }
 
        return $results;
    }
 
    /**
     * Store an item in the cache for a given number of minutes.
     *
     * @param  string  $key
     * @param  mixed   $value
     * @param  float|int  $minutes
     * @return void
     */
    public function put($key, $value, $minutes)
    {
        $this->connection()->setex(
            $this->prefix.$key, (int) max(1, $minutes * 60), $this->serialize($value)
        );
    }
 
    /**
     * Store multiple items in the cache for a given number of minutes.
     *
     * @param  array  $values
     * @param  float|int  $minutes
     * @return void
     */
    public function putMany(array $values, $minutes)
    {
        $this->connection()->multi();
 
        foreach ($values as $key => $value) {
            $this->put($key, $value, $minutes);
        }
 
        $this->connection()->exec();
    }
Arguments
  1. "setex"
    
  2. array:3 [
      0 => "laravel:NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
      1 => 7200
      2 => "s:312:"a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}";"
    ]
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
    }
 
    /**
     * Store an item in the cache.
     *
     * @param  string  $key
     * @param  mixed   $value
     * @param  \DateTimeInterface|\DateInterval|float|int|null  $minutes
     * @return void
     */
    public function put($key, $value, $minutes = null)
    {
        if (is_array($key)) {
            $this->putMany($key, $value);
 
            return;
        }
 
        if (! is_null($minutes = $this->getMinutes($minutes))) {
            $this->store->put($this->itemKey($key), $value, $minutes);
 
            $this->event(new KeyWritten($key, $value, $minutes));
        }
    }
 
    /**
     * {@inheritdoc}
     */
    public function set($key, $value, $ttl = null)
    {
        $this->put($key, $value, $ttl);
    }
 
    /**
     * Store multiple items in the cache for a given number of minutes.
     *
     * @param  array  $values
     * @param  \DateTimeInterface|\DateInterval|float|int  $minutes
     * @return void
     */
Arguments
  1. "NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
    
  2. "a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 120
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php
     */
    public function close()
    {
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        return $this->cache->get($sessionId, '');
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        return $this->cache->put($sessionId, $data, $this->minutes);
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        return $this->cache->forget($sessionId);
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        return true;
    }
 
    /**
     * Get the underlying cache repository.
Arguments
  1. "NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
    
  2. "a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 120
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "NnCpRPIiZgZumRErjB54AdRtmgNc8bzSecfd4MfB"
    
  2. "a:4:{s:6:"_token";s:40:"thQzPKyFnoCOnJKbsHv8nh4zt1uihuBKqvqp34vt";s:9:"_previous";a:1:{s:3:"url";s:117:"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292";}s:22:"PHPDEBUGBAR_STACK_DATA";a:0:{}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            [$name] = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:1 [
        0 => "*/*"
      ]
      #pathInfo: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #requestUri: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    
/var/www/html/blissimobiliare/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:1 [
        0 => "*/*"
      ]
      #pathInfo: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #requestUri: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    
/var/www/html/blissimobiliare/public/index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Illuminate\Http\Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …4}
      #routeResolver: Closure() { …4}
      +attributes: Symfony\Component\HttpFoundation\ParameterBag {}
      +request: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +query: Symfony\Component\HttpFoundation\ParameterBag {#1}
      +server: Symfony\Component\HttpFoundation\ServerBag {}
      +files: Symfony\Component\HttpFoundation\FileBag {}
      +cookies: Symfony\Component\HttpFoundation\ParameterBag {}
      +headers: Symfony\Component\HttpFoundation\HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:1 [
        0 => "*/*"
      ]
      #pathInfo: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #requestUri: "/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Illuminate\Session\Store {}
      #locale: null
      #defaultLocale: "en"
      -preferredFormat: null
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Illuminate\Http\Response {}
    

Environment & details:

empty
empty
empty
Key Value
lang
"eyJpdiI6IlMxSTZEZEpIK3ZUVTdIUUtnOW1iZGc9PSIsInZhbHVlIjoiNEN0aHltVElVa2xDUUZXM2ZhbU9TZz09IiwibWFjIjoiMDNlODJhMTNjYmQxZWViMzQ5NDc5NDg1MmE4ZDk1ODg5ZGNiYjNiZGUxZmY2M2E1YTcxMjc1OGQ3YjY5NWY0YSJ9"
XSRF-TOKEN
"eyJpdiI6ImxYcTA3bWFCb1FHd1F1WVdaSTUzc3c9PSIsInZhbHVlIjoiQ3VIdGV6YzJnNjhubHVyS2ZqbkpWY01sRnQwUGNrbm5QZThXN0hVN3NBZ2NCdU56NjFWK0VnK3cxSWpRR2JETiIsIm1hYyI6IjM3Zjg2NGIxYjQyYTg3YWUwOTM4NzRjODM0MGIzZGJmN2MxMTVjZWM5MzM5MTZkYjg1MmFmOTI1OGE3NjRjMGYifQ=="
laravel_session
"eyJpdiI6IjVVSVdQYWZQMG1ZOUdWZXVKaHRqMXc9PSIsInZhbHVlIjoiS1FmOVJydFwvU2FTbXkzZjhYRXd1SXlEZEYzQUpqa21uTjV6WDQ2QStodXRvUDBpWkdBMVwvRHpvYjVxcVZXRG5vIiwibWFjIjoiMWUzNjViMmZkMTg3M2EzNjZmMzY2NzRlOTM3ZTY2MTZmNzQ5Nzc5YjUwZDk1ZWEyOTk1N2NlYWM3NmQ2YTEyMyJ9"
empty
Key Value
REDIRECT_UNIQUE_ID
"aMYkRqwfEagAAEA@scsAAAAD"
REDIRECT_SCRIPT_URL
"/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
REDIRECT_SCRIPT_URI
"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
REDIRECT_STATUS
"200"
UNIQUE_ID
"aMYkRqwfEagAAEA@scsAAAAD"
SCRIPT_URL
"/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
SCRIPT_URI
"http://dev.blissimobiliare.ro/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
HTTP_ACCEPT
"*/*"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_COOKIE
"lang=eyJpdiI6IlMxSTZEZEpIK3ZUVTdIUUtnOW1iZGc9PSIsInZhbHVlIjoiNEN0aHltVElVa2xDUUZXM2ZhbU9TZz09IiwibWFjIjoiMDNlODJhMTNjYmQxZWViMzQ5NDc5NDg1MmE4ZDk1ODg5ZGNiYjNiZGUxZmY2M2E1YTcxMjc1OGQ3YjY5NWY0YSJ9; XSRF-TOKEN=eyJpdiI6ImxYcTA3bWFCb1FHd1F1WVdaSTUzc3c9PSIsInZhbHVlIjoiQ3VIdGV6YzJnNjhubHVyS2ZqbkpWY01sRnQwUGNrbm5QZThXN0hVN3NBZ2NCdU56NjFWK0VnK3cxSWpRR2JETiIsIm1hYyI6IjM3Zjg2NGIxYjQyYTg3YWUwOTM4NzRjODM0MGIzZGJmN2MxMTVjZWM5MzM5MTZkYjg1MmFmOTI1OGE3NjRjMGYifQ%3D%3D; laravel_session=eyJpdiI6IjVVSVdQYWZQMG1ZOUdWZXVKaHRqMXc9PSIsInZhbHVlIjoiS1FmOVJydFwvU2FTbXkzZjhYRXd1SXlEZEYzQUpqa21uTjV6WDQ2QStodXRvUDBpWkdBMVwvRHpvYjVxcVZXRG5vIiwibWFjIjoiMWUzNjViMmZkMTg3M2EzNjZmMzY2NzRlOTM3ZTY2MTZmNzQ5Nzc5YjUwZDk1ZWEyOTk1N2NlYWM3NmQ2YTEyMyJ9"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_HOST
"dev.blissimobiliare.ro"
HTTP_VIA
"1.1 squid-proxy-5b5d847c96-b8kmf (squid/6.10)"
HTTP_X_FORWARDED_FOR
"10.3.134.55"
HTTP_CACHE_CONTROL
"max-age=259200"
HTTP_CONNECTION
"keep-alive"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"dev.blissimobiliare.ro"
SERVER_ADDR
"172.31.17.168"
SERVER_PORT
"80"
REMOTE_ADDR
"216.73.216.97"
DOCUMENT_ROOT
"/var/www/html/blissimobiliare/public"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/var/www/html/blissimobiliare/public"
SERVER_ADMIN
"razvan.iacob@blissimobiliare.ro"
SCRIPT_FILENAME
"/var/www/html/blissimobiliare/public/index.php"
REMOTE_PORT
"19284"
REDIRECT_URL
"/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/blog/imobiliare/when-investors-call-how-your-business-should-talk-about-coronavirus-292"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1757815878.465
REQUEST_TIME
1757815878
APP_ENV
"dev"
APP_KEY
"base64:TUuFX2pGhF01If7DKAC3kZsG4eHfCEDGZOiq1YLX/Fc="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"https://dev.blissimobiliare.ro"
DB_CONNECTION
"mysql"
DB_HOST
"jaap.c0yqfgjfckuc.eu-central-1.rds.amazonaws.com"
DB_PORT
"3306"
DB_DATABASE
"jaap_dev"
DB_USERNAME
"root"
DB_PASSWORD
"nd3nfm90ms"
BROADCAST_DRIVER
"pusher"
CACHE_DRIVER
"redis"
SESSION_DRIVER
"redis"
QUEUE_DRIVER
"redis"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
SOLR_CORE
"core0"
SOLR_USER
"root"
SOLR_PASS
"jA5GpXhFCc7SeY6x"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.sendgrid.net"
MAIL_PORT
"587"
MAIL_USERNAME
"apikey"
MAIL_PASSWORD
"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"
MAIL_ENCRYPTION
"tls"
SENGRID_API_KEY
"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"
PUSHER_APP_ID
"266734"
PUSHER_APP_KEY
"1da30260f9dbb1a0d9db"
PUSHER_APP_SECRET
"10fbeff65291a4cc067a"
SLACK_WEBHOOK_URL
"https://hooks.slack.com/services/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"
MIXPANEL_TOKEN
"25d54c3d4d562ae8353ed7c7417d488b"
ANALYTICS_VIEW_ID
"132938481"
RECAPTCHA_KEY
"6LecPnoUAAAAAAZgRBMRPEA1V2bqSKNPmTnlN_M_"
RECAPTCHA_SECRET
"6LecPnoUAAAAAD-xVo0bqW7XCeGEHjotj48ShhfK"
S3_KEY
"AKIAIY23DCGM7GE6X26A"
S3_SECRET
"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"
S3_REGION
"eu-central-1"
S3_BUCKET
"bliss-files"
IPAPI_KEY
""
DEBUGBAR_ENABLED
"true"
DB_LOG_QUERIES
"false"
DB_LOG_SLOW_QUERIES
"true"
DB_SLOW_QUERIES_MIN_EXEC_TIME
"100"
DB_LOG_OVERRIDE
"false"
DB_LOG_DIRECTORY
"logs/db"
DB_CONVERT_TIME_TO_SECONDS
"false"
DB_LOG_SEPARATE_ARTISAN
"false"
Key Value
APP_ENV
"dev"
APP_KEY
"base64:TUuFX2pGhF01If7DKAC3kZsG4eHfCEDGZOiq1YLX/Fc="
APP_DEBUG
"true"
APP_LOG_LEVEL
"debug"
APP_URL
"https://dev.blissimobiliare.ro"
DB_CONNECTION
"mysql"
DB_HOST
"jaap.c0yqfgjfckuc.eu-central-1.rds.amazonaws.com"
DB_PORT
"3306"
DB_DATABASE
"jaap_dev"
DB_USERNAME
"root"
DB_PASSWORD
"nd3nfm90ms"
BROADCAST_DRIVER
"pusher"
CACHE_DRIVER
"redis"
SESSION_DRIVER
"redis"
QUEUE_DRIVER
"redis"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
SOLR_CORE
"core0"
SOLR_USER
"root"
SOLR_PASS
"jA5GpXhFCc7SeY6x"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.sendgrid.net"
MAIL_PORT
"587"
MAIL_USERNAME
"apikey"
MAIL_PASSWORD
"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"
MAIL_ENCRYPTION
"tls"
SENGRID_API_KEY
"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"
PUSHER_APP_ID
"266734"
PUSHER_APP_KEY
"1da30260f9dbb1a0d9db"
PUSHER_APP_SECRET
"10fbeff65291a4cc067a"
SLACK_WEBHOOK_URL
"https://hooks.slack.com/services/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"
MIXPANEL_TOKEN
"25d54c3d4d562ae8353ed7c7417d488b"
ANALYTICS_VIEW_ID
"132938481"
RECAPTCHA_KEY
"6LecPnoUAAAAAAZgRBMRPEA1V2bqSKNPmTnlN_M_"
RECAPTCHA_SECRET
"6LecPnoUAAAAAD-xVo0bqW7XCeGEHjotj48ShhfK"
S3_KEY
"AKIAIY23DCGM7GE6X26A"
S3_SECRET
"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"
S3_REGION
"eu-central-1"
S3_BUCKET
"bliss-files"
IPAPI_KEY
""
DEBUGBAR_ENABLED
"true"
DB_LOG_QUERIES
"false"
DB_LOG_SLOW_QUERIES
"true"
DB_SLOW_QUERIES_MIN_EXEC_TIME
"100"
DB_LOG_OVERRIDE
"false"
DB_LOG_DIRECTORY
"logs/db"
DB_CONVERT_TIME_TO_SECONDS
"false"
DB_LOG_SEPARATE_ARTISAN
"false"
0. Whoops\Handler\PrettyPageHandler