A config file dropped into config/ in Lumen is simply not read, and config('services.stripe.key') returns null with no error — which costs an hour the first time.
// bootstrap/app.php
$app->configure('services');
$app->configure('queue');
$app->configure('mail');
// and for a package's own config, the provider still publishes it:
$this->mergeConfigFrom(__DIR__ . '/../config/gateway.php', 'gateway');
This is deliberate rather than an oversight — loading nine config files per request is measurable overhead on a framework whose entire pitch is not doing work you did not ask for. The practical consequence is that adding a config file is a two-step operation forever, and forgetting the second step produces a null rather than an exception. Wrapping critical config reads in a check that throws on null is a cheap way to make the mistake loud.