La interfaz objetivo de Laravel 4 no es instantánea

Esto está relacionado con esta pregunta.Cómo registrar un espacio de nombres en laravel 4 pero creo que me funcionó y los espacios de nombres están funcionando ahora.

Hay un nuevo problema que he encontrado. Creo que el error viene de intentar escribir una sugerencia en el constructor del controlador y tiene que ver con el uso de espacios de nombres y el uso de ioc.

BindingResolutionException: Target [App\Models\Interfaces\PostRepositoryInterface] is not instantiable.

El siguiente método funcionó perfectamente hasta que intenté introducir espacios de nombres. Puedo eliminar todos los espacios de nombres y colocar la interfaz y los repositorios en el mismo directorio, pero me gustaría saber cómo hacer que los espacios de nombres funcionen con este método de uso de ioc.

Aquí están los archivos relevantes.

rutas.php

Route::resource('posts', 'PostsController');

PostController.php

<?php
use App\Models\Interfaces\PostRepositoryInterface;
class PostsController extends BaseController {

    public function __construct( PostRepositoryInterface $posts )
    {
        $this->posts = $posts; 
    }

}

PostRepositoryInterface.php

<?php namespace App\Models\Interfaces;
interface PostRepositoryInterface {
    public function all();
    public function find($id);
    public function store($data);
}

EloquentPostRepository.php

<?php namespace App\Models\Repositories;
use App\Models\Interfaces\PostRepositoryInterface;
class EloquentPostRepository implements PostRepositoryInterface {

    public function all()
    {
        return Post::all();
            //after above edit it works to this point
            //error: App\Models\Repositories\Post not found
            //because Post is not in this namespace
    }

    public function find($id)
    {
        return Post::find($id);
    }

    public function store($data)
    {
        return Post::save($data);
    }
}

Y puedes ver que el compositor dump-autoload hizo su trabajo.

compositor / autoload_classmap.php

return array(
    'App\\Models\\Interfaces\\PostRepositoryInterface' => $baseDir . '/app/models/interfaces/PostRepositoryInterface.php',
    'App\\Models\\Repositories\\EloquentPostRepository' => $baseDir . '/app/models/repositories/EloquentPostRepository.php',

    ....
    )

¿Alguna idea de dónde o qué necesito cambiar para hacer que esto funcione con nombres como sin ellos?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta