Laravel.io
<?php namespace Codeboard\Http\Controllers;

use Codeboard\Articles\ArticleListener;
use Codeboard\Articles\PostArticle;
use Codeboard\Articles\Repository\ArticleRepository;
use Codeboard\Articles\UpdateArticle;
use Codeboard\Http\Requests\PostArticleRequest;
use Codeboard\Http\Requests\UpdateArticleRequest;
use Illuminate\Routing\Controller;

class ArticlesController extends Controller implements ArticleListener
{
    /**
     * @var \Codeboard\Articles\Repository\ArticleEloquentRepository
     */
    private $articleRepo;


    /**
     * @param ArticleRepository $articleRepo
     */
    function __construct(ArticleRepository $articleRepo)
    {
        $this->articleRepo = $articleRepo;
    }

    /**
     * @return \Illuminate\View\View
     */
    public function index()
    {
        $articles = $this->articleRepo->all();
        return view(frontendView('articles.index'), compact('articles'));
    }

    /**
     * @return \Illuminate\View\View
     */
    public function create()
    {
        return view(backendView('articles.create'));
    }

    /**
     * @param PostArticleRequest $request
     * @param PostArticle $article
     * @return mixed
     */
    public function store(PostArticleRequest $request, PostArticle $article)
    {
        return $article->execute($request->all(), $this);
    }

    /**
     * @param $slug
     * @return \Illuminate\View\View
     */
    public function show($slug)
    {
        $article = $this->articleRepo->findBySlug($slug);
        return view(frontendView('articles.show'), compact('article'));
    }

    /**
     * @param $articleId
     * @return \Illuminate\View\View
     */
    public function edit($articleId)
    {
        $article = $this->articleRepo->findById($articleId);
        return view(backendView('articles.edit'), compact('article'));
    }

    /**
     * @param $articleId
     * @param UpdateArticleRequest $request
     * @param UpdateArticle $article
     * @return mixed
     */
    public function update($articleId, UpdateArticleRequest $request, UpdateArticle $article)
    {
        return $article->execute($articleId, $request->all(), $this);
    }

    /**
     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function articleRedirect()
    {
        return redirect('/blog');
    }

}

Please note that all pasted data is publicly available.