/** * Create a new driver instance. * * @param string $driver * @return mixed * * @throws \InvalidArgumentException * @throws Exception */ protected function createDriver($driver) { try { return parent::createDriver($driver); } catch (Exception $e) { if ($newDriver = $this->nextDriver($driver)) { return $this->createDriver($newDriver); } throw $e; } }