That is because in the input::json() returns an object and validation method expects either array or eloquent object. What you can do is convert the object to an array.
$input = Input::json();
$input_array = (array)$input;
$validation = Validator::make($input_array, $rules);
Updated:
After discussing with @Ryan, I noticed the problem is not from the validation, but in the the response::eloquent() was passed with an array instead of an eloquent object.