I need to bind a controller in a ServiceProvider in two different 'addons', but provide different parameters.

EG

Addon ServiceProvider 1

$this->app->bind('facade_name', function ($app) {
    return new FacadeName($app, $this->app['config']->get('foo-app'));
});

$this->app->bind('My\Custom\Package\Controllers\MyController', function () {
            return new MyController(
                config('foo-app.foo'),
                config('foo-app.bar'),
                config('foo-app.baz'),
                config('foo-app.qux')
            );
});

Addon ServiceProvider 2

$this->app->bind('facade_name', function ($app) {
    return new FacadeName($app, $this->app['config']->get('bar-app'));
});

$this->app->bind('My\Custom\Package\Controllers\MyController', function () {
            return new MyController(
                config('bar-app.foo'),
                config('bar-app.bar'),
                config('bar-app.baz'),
                config('bar-app.qux')
            );
});

The issue currently, is that because they are binding the same things, the second ServiceProvider is taking precedence and when Addon 1 uses MyController - it's with the parameters from the second provider.

I think contextual binding might be able to help, but i cannot find much info on the subject, and anything I do find, its quite different to what I'm trying to achieve.