I tried extending the Laravel 4.2 validation to check if all form data is valid (not just some fields) according to some business rules.
I could not extend the custom validator in any normal way (either too hacky or not DRY enough) so I decided to add the business rules check after validator succeeds, and then add my own error messages and redirect.
It is still ugly and it does not work but for now I would be happy if someone tells me how to add my message to the session. If you feel like telling me how I should use Laravel's custom validators I've included some more code so you can be more specific..:
$validator = Validator::make(Input::all(), $this->validationRules, $this->validationMessages);
if ($validator->fails()) {
    if (0 == $id) {
        return Redirect::route('x.create')->withErrors($validator)->withInput();
    } else {
        return Redirect::route('x.edit', $id)->withErrors($validator)->withInput();
    }
} else {
    //TESTs
    if ($this->AlreadyExists($id)) {
        $messages = new MessageBag();
        if ($request->getSession()->get('errors')){
            $messages = $request->getSession()->get('errors')->getBag('default');
        }
        $messages->add('form', 'same data already exists');
        if (0 == $id) {
            return Redirect::route('x.create')->withErrors($messages)->withInput();
        } else {
            return Redirect::route('x.edit', $id)->withErrors($messages)->withInput();
        }
    }
}
//all is ok. Save/update entity
...
The code for setting the session is first 5 lines after check for AlreadyExists. I got it from some forum but it doesn't seem to work ok (I get some "non-object" exceptions if I include the code so it seems it corrupts the session object)
I don't think I have time to upgrade to L5.