routing
Route::get('/', 'PostsController@index');
// Route::get('/posts/{id}', 'PostsController@show');
Route::get('/posts/{post}', 'PostsController@show')->where('post','[0-9]+');
Route::get('/posts/create', 'PostsController@create');
index.blade.php
@section('container')
<h1>
<a href="{{ url('/posts/create') }}" class="header-menu">New Post</a>
Blog Posts
</h1>
<ul>
{{--
@foreach ($posts as $post)
<li><a href="">{{ $post->title }}</a></li>
@endforeach
--}}
@forelse ($posts as $post)
<li><a href="{{ action('PostsController@show', $post) }}">{{ $post->title }}</a></li>
@empty
<li>No posts yet</li>
@endforelse
</ul>
@endsection
@extends('layouts.default')
@section('title', 'New Post')
@section('container')
<h1>
<a href="{{ url('/') }}" class="header-menu">Back</a>
New Post</h1>
<form method="post" action="{{ url('/posts') }}">
{{ csrf_field() }}
<p>
<input type="text" name="title" placeholder="enter title">
</p>
<p>
<textarea name="body" placeholder="enter body"></textarea>
</p>
<p>
<input type="submit" value="Add">
</p>
</form>
@endsection
なんじゃこりゃー 洒落にならん。

getではなく、postにします。
Route::get('/', 'PostsController@index');
// Route::get('/posts/{id}', 'PostsController@show');
Route::get('/posts/{post}', 'PostsController@show')->where('post','[0-9]');
Route::get('/posts/create', 'PostsController@create');
Route::post('/posts', 'PostsController@store');
