public function testSoftDelete()
 {
     Soft::create(array('name' => 'John Doe'));
     Soft::create(array('name' => 'Jane Doe'));
     $this->assertEquals(2, Soft::count());
     $user = Soft::where('name', 'John Doe')->first();
     $this->assertEquals(true, $user->exists);
     $this->assertEquals(false, $user->trashed());
     $this->assertNull($user->deleted_at);
     $user->delete();
     $this->assertEquals(true, $user->trashed());
     $this->assertNotNull($user->deleted_at);
     $user = Soft::where('name', 'John Doe')->first();
     $this->assertNull($user);
     $this->assertEquals(1, Soft::count());
     $this->assertEquals(2, Soft::withTrashed()->count());
     $user = Soft::withTrashed()->where('name', 'John Doe')->first();
     $this->assertNotNull($user);
     $this->assertInstanceOf('Carbon\\Carbon', $user->deleted_at);
     $this->assertEquals(true, $user->trashed());
     $user->restore();
     $this->assertEquals(2, Soft::count());
 }