Object instantiation with multiple parameters
The problem might be the semantic reference you are using as a pattern. You are creating a class as a "factory", but the actual Factory patter is related only to creating objects, and it seems that what you mean is actually the "Repository" pattern, where you can created, manage and retrieve objects. 

And your case you would create a BlockRepository that it would be injected in the controller to be the interface between the controller and the actual blocks you need to create and retieve. 

You can find related references on the links below:


http://heera.it/laravel-repository-pattern
https://stackoverflow.com/questions/21805939/laravel-using-the-repository-pattern