You can disable exception handling to see a full stack trace:
/** @test */
public function a_guest_cannot_create_new_forum_threads()
{
$this->withoutExceptionHandling(); // and read the stacktrace
$thread = factory('App\Thread')->make();
$this->post(route('threads.store'), $thread->toArray())
->assertStatus(403);
}
Aside, the first test above is useless as it is currently written; to prove it, comment out the request line $this->post(/* etc */) and it will still pass. This is because you are asserting that the Thread you created using the factory exists, and not the Thread that should result from the request.
You need to fetch the thread that the request created for the test to be valid, e.g.
public function an_authenticated_user_can_create_new_forum_threads()
{
$this->actingAs(factory('App\User')->create());
// pre-action assert that there are no records:
$this->assertEquals(0, Thread::count());
$this->post(route('threads.store'), factory('App\Thread')->raw());
// post-action assert that there are no records:
$this->assertEquals(1, Thread::count());
$this->get(route('threads.show', Thread::first()))
->assertSee($thread->title);
}