Q:

How to get a Model in function of controller in Laravel 5.2? 

I want to delete item.  For that I'm passing id of item from html form to controller function destroy().  i.e, public function destroy (Request $request, Item $item){...}.  Item is a model.  But I'm not getting model in function as I have checked by this line, dd($item).  It contains null attribute.  It is sure that $item in function parameters contains the value of product id i.e,public function destroy (Request $request, $item){...}.  But when I'm using Model in parameters, there is nothing in attribute array. ( Checked by dd($item)).  I'm also implementing Policy in Model.  In short, I'm following this tutorial.  But I can't perform delete operation as it contains model with no attributes.  If anyone knows the answer, answer will be appreciated.  Here is my code. 
Model
namespace App;
use Illuminate\Database\Eloquent\Model;

class Item extends Model
{
    protected $fillable = ['col1', 'col2'];
    public $timestamps = false;

    public function user()
    {
        return $this->belongsTo('App\User', 'user');
    }
}

Policy
namespace App\Policies;
use App\User;
use App\Item;
use Illuminate\Auth\Access\HandlesAuthorization;

class ItemPolicy
{
    use HandlesAuthorization;

    public function destroy(User $user, Item $item)
    {
        return $user->id === $item->user;
    }
}

AuthServiceProvider
protected $policies = ['App\Client' => 'App\Policies\ClientPolicy'];

ItemController
use App\Item;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Repositories\ItemRepository;

public function destroy(Request $request, Item $item)
{
    dd($item);   //This shows empty attribute in item
    $this->authorize('destroy', $item);

    // Delete The Task...
    $client->delete();
    return view('/clients');
}

View
<form action="{{ url('items/'.$item->id) }}" method="POST">
    {!!  csrf_field() !!} 
    {!!  method_field('DELETE') !!} 
    <button type="submit" id="delete-item-{{ $item->id }}" class="btn btn-danger">
        <i class="fa fa-btn fa-trash"></i>Delete
    </button>
</form>

Route
Route::get('/', function ()
{
    return view('welcome');
});

Route::group(['middleware' => ['web']], function ()
{
    Route::auth();
    Route::resource('items', 'ItemController');
});

If I'm right, then there is no any issue related to Policy and View as I'm getting value of item ID in $item. 

A:

Quick answer just rename your route resource to singular: 
Route::resource('item', 'ItemController');

What you want is Route Model Binding and for you to achieve that the easiest way is running php artisan routes:list
This is a small example for you to understand, my routes file:
Route::get('/', function () {
    return view('welcome');
});

Route::resource('list', 'ListingController');

When I run php artisan routes:list I get this:
+--------+-----------+------------------+--------------+------------------------------------------------+------------+
| Domain | Method    | URI              | Name         | Action                                         | Middleware |
+--------+-----------+------------------+--------------+------------------------------------------------+------------+
|        | GET|HEAD  | /                |              | Closure                                        |            |
|        | POST      | list             | list.store   | App\Http\Controllers\ListingController@store   |            |
|        | GET|HEAD  | list             | list.index   | App\Http\Controllers\ListingController@index   |            |
|        | GET|HEAD  | list/create      | list.create  | App\Http\Controllers\ListingController@create  |            |
|        | DELETE    | list/{list}      | list.destroy | App\Http\Controllers\ListingController@destroy |            |
|        | PUT|PATCH | list/{list}      | list.update  | App\Http\Controllers\ListingController@update  |            |
|        | GET|HEAD  | list/{list}      | list.show    | App\Http\Controllers\ListingController@show    |            |
|        | GET|HEAD  | list/{list}/edit | list.edit    | App\Http\Controllers\ListingController@edit    |            |
+--------+-----------+------------------+--------------+------------------------------------------------+------------+

So has you can see my URI the name of my parameters are {list} for route model binding to work, your variable name on your controller must be exactly the same. 
So you either rename your routes, or on your controller instead of using Item $item, you have to use Item $items

