La soluzione più semplice è impostare la configurazione del database in fase di esecuzione. Laravel potrebbe aspettarsi che queste impostazioni vengano caricate da config/database.php file, ma ciò non significa che non puoi impostarli o modificarli in un secondo momento.
La configurazione caricata da config/database.php è memorizzato come database nella configurazione di Laravel. Significato, i connections array all'interno di config/database.php è memorizzato in database.connections .
Quindi puoi facilmente sovrascrivere/modificare queste connessioni in questo modo:
Config::set("database.connections.mysql", [
"host" => "...",
"database" => "...",
"username" => "...",
"password" => "..."
]);
Da lì in poi, tutti i modelli Eloquent che utilizzano questo mysql la connessione utilizzerà questa nuova configurazione di connessione al database.
Consiglierei di farlo in un fornitore di servizi, se possibile.