How do i run an arbitrary command like `echo Done` after **any** command has finished?

I want to be able to put any command in an interactive shell and it to return the same command when its done i.e.

```
> pwd
/home/user
Done
> ls
...
Done
> whoami
user
Done

```

I know if it is something specific like `cd` the code would be:

```
function cd () {
  builtin cd $@

  echo Done
}

```

but how do i do this for all commands?