@Cronin Injection in general means that there's some helper class, that will do the job for you.
In Laravel that class is Illuminate\Container\Container (Application extends it), so the only thing you gain from using (mind that it's pretty BIG thing) is capability to do this:
// define dependency in TheClass:
__construct(SomeInterface $dependency)
// let the container know what it should inject:
$container->bind('SomeInterface', 'SomeClassToInject'); // App::bind does this
// then whenver you need the TheClass object just use the container:
$obj = $container->make('TheClass')
// instead of doing it by yourself
$obj = new TheClass(new SomeClassToInject)
This lets you replace SomeInterface with different implementation without any hassle. You just change the bind('SomeInterface', 'AnotherClassToInject') and you're done. This way you don't have to change your whole codebase, wherever you called new TheClass(new SomeClassToInject) to new TheClass(new AnotherClassToInject).
Now, since you asked about the method injection. It is exactly the same as above, so in order to let the Container do the job for you, you need to call:
// TheClass
public function doThis(SomeInterface $dependency)
$container->call('TheClass@doThis')
And this is what happens in the Laravel controllers automatically. That's why you can simply drop some dependency in the constructor or any method (handling the routes), and it will be injected for you.