There are a a couple of things going on here. I compacted your code a bit to make the code below, using .' in place of the transpose commands. It appears your values for P are not an exact fit, nothing wrong with that.
For the fitting plot, you need to use f(x) or f(P./t), not f(t). Also, you meant x = P./t not x = P/t. After that you get the correct plot.
At least as important, you are using the old fashioned normal-matrix technique with inv(A.' * A) to find V. That's all right accuracywise for a 2x6, but it is not good practice in general.
You want to solve
for V, where P and V are column vectors. In Matlab, the solution is simply
(The idea is that you are effectively dividing P on the left by A).
For large arrays, backslash is more accurate than the normal-matrix approach, and there is no need to compute an inverse. Besides, backslash is how Mathworks got its start.
t = [1 3 4 7 8 10].';
P = [2.1 4.6 5.4 6.1 6.4 6.6].';
A = [ones(size(P)), -P./t];
V = A\P;
m = V(1)
b = V(2)
x = P./t;
f = @(x)m-b.*(x);
APPENDED: As far as checking the result, you already have what you need in A and the solved-for V, so an even better way is to replace method 1 with
Pfit = A*V;