title: Inject models in laravel's controllers's constructors or laravel's controller's concrete function
body: <p>Imagine situation that in laravels constructor(PostController) I need to Inject 3 models: User, Post and Comment. </p>
  
  <p>I have two scenarios:</p>
  
  <p>1) Inject these 3 Models all in controllers constructor and then I use this controllers variables in concrete functions like this: <code>$this-&gt;post</code> </p>
  
  <p>2) Inject these models in concrete controller's functions whenever, wherever needed (For example <code>index(Post $post)</code>);</p>
  
  <p>which of these two is better practice?  In first scenario, in index function I only use <code>$this-&gt;post</code> variable, but I also create <code>$this-&gt;comment</code> and <code>$this-&gt;user</code> because I need them in other functions? but I don't need them in index, so I inject and create them for nothing whenever I call index by addressing index specific route. Isn't that bad? so which of these is better?</p>